Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Syntax error when trying to use a hash value as a file stream specifier (updated)

by AnomalousMonk (Archbishop)
on Sep 02, 2022 at 19:15 UTC ( #11146641=note: print w/replies, xml ) Need Help??


in reply to Syntax error when trying to use a hash value as a file stream specifier

#print $hash{key} "This is line 4.\n";

Note {} curly braces around $hash{key}:
    print {$hash{key}} "This is line 4.\n";

Update: From print:

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, in which case the LIST may not be omitted:

    print { $files[$i] } "stuff\n";
    print { $OK ? *STDOUT : *STDERR } "stuff\n";
(Update: The documentation excerpted here refers to Indirect Object syntax. Please see kcott's ++reply and the replies of others in this thread for the way to avoid this syntax and for the wisdom of doing so.)


Give a man a fish:  <%-{-{-{-<

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (6)
As of 2023-01-30 12:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?