As documented in
Time::Piece,
strptime is a class method. The problem is caused by calling it as an instance method instead.
#! /usr/bin/perl
use warnings;
use strict;
use Time::Piece;
print 'Time::Piece'->VERSION, "\n";
my $t = 'Time::Piece'->strptime($ARGV[0], '%s');
print "Input $ARGV[0]\n";
print "Output ", $t->epoch(), "\n";
print $t, "\n";
print $t->strftime('%a %b %d %T %Y'), "\n";
Test run:
$ TZ=Europe/Moscow 1.pl $(date +%s)
1.27
Input 1467613256
Output 1467613256
Mon Jul 4 06:20:56 2016
Mon Jul 04 06:20:56 2016
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord
}map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,