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. ...
In reply to Re^3: Using the DATA file handle for ARGV
by GotToBTru
in thread Using the DATA file handle for ARGV
by samwyse
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |