Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^2: Using the DATA file handle for ARGV

by choroba (Cardinal)
on Nov 13, 2013 at 17:52 UTC ( [id://1062422]=note: print w/replies, xml ) Need Help??


in reply to Re: Using the DATA file handle for ARGV
in thread Using the DATA file handle for ARGV

The trick influences how the diamond operator <> works, i.e. what *ARGV{IO} does. The behaviour of @ARGV is a different story and is not related to the trick. To see it work, change the line 5 to
my $timestamp = <>;
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Replies are listed 'Best First'.
Re^3: Using the DATA file handle for ARGV
by GotToBTru (Prior) on Nov 13, 2013 at 20:03 UTC

    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. ...
      No. You either specify no argument, in which case the script processes the DATA section, or you provide a file name, in which case the script processes the file. For a default value of an argument, use
      my $arg = shift; $arg //= "default";
      لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1062422]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (7)
As of 2024-03-28 19:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found