> $h{k2}=FH
will only work in no strict scenarios, here corrected versions
use v5.12; use warnings; use Data::Dump; my %h; open my $fh, ">>", \ my $out; $h{k}=$fh; $h{k}->print("bla"); dd $out; open FH2, ">>", \ my $out2; $h{k2}=*FH2; $h{k2}->print("bla2"); dd $out2; open FH3, ">>", \ my $out3; $h{k3}=\*FH3; $h{k3}->print("bla3"); dd $out3; # open FH4, ">>", \ my $out4; # $h{k4}=FH4; # $h{k4}->print("bla4"); # dd $out4; # Bareword "FH4" not allowed while "strict subs" in use at c:/tmp/pm/f +h.pl line 27. # Execution of c:/tmp/pm/fh.pl aborted due to compilation errors.
"bla" "bla2" "bla3"
FWIW: I prefer the 3rd $h{k3}=\*FH3 over the 2nd variant
Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery
In reply to Re^2: Syntax error when trying to use a hash value as a file stream specifier
by LanX
in thread Syntax error when trying to use a hash value as a file stream specifier
by fireblood
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |