Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re^2: filehandle for close

by eyepopslikeamosquito (Canon)
on Jan 14, 2013 at 21:56 UTC ( #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.

Comment on Re^2: filehandle for close

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2014-11-29 08:08 GMT
Find Nodes?
    Voting Booth?

    My preferred Perl binaries come from:

    Results (204 votes), past polls