This works for DATA, but not for an argument. The point of this trick, as I understood it, was to allow the program to use DATA if an argument was not passed.
use strict;
use warnings;
BEGIN { *ARGV = *DATA unless @ARGV }
my $timestamp = <>;
my ($year,$month,$day,$hour,$minute,$second) =
($timestamp =~ /(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/);
printf "%s is %d seconds\n",$timestamp, ((($year * 365 + $day) * 24 +
+$hour) * 60 + $minute) * 60 + $second;
__DATA__
620731142301
$: perl secsis.pl
620731142301 is 1957962181 seconds
$: perl secsis.pl 131113135710
Can't open 131113135710: No such file or directory at secsis.pl line 5
+.
Use of uninitialized value in pattern match (m//) at secsis.pl line 7.
...
|