Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^2: filehandle for close

by eyepopslikeamosquito (Archbishop)
on Jan 14, 2013 at 21:56 UTC ( [id://1013287]=note: print w/replies, xml ) Need Help??


in reply to Re: filehandle for close
in thread filehandle for close

The Perl print function, which has a long history and a tricky syntax, takes an optional file handle as its first argument. Without the optional first file handle argument, it prints to the default output handle (typically STDOUT). Moreover, it has a special syntax where its first and second arguments are separated not by a comma (like most Perl functions) but by a space! And because your first argument to print is more complex than a plain scalar variable, you need to specify it in a bare block, for, erm, historical reasons. Note that this special block syntax to print is clearly documented:

If you're storing handles in an array or hash, or in general whenever you're using any expression more complex than a bareword handle or a plain, unsubscripted scalar variable to retrieve it, you will have to use a block returning the filehandle value instead
However, you then made the (perfectly understandable) "mistake" of assuming that this special print syntax applies to other Perl functions, such as close. When calling most Perl functions, you should not place the first function argument in a block; this is a one-off special case for the print function.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2024-04-23 07:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found