in reply to Re: Syntax error when trying to use a hash value as a file stream specifier
in thread Syntax error when trying to use a hash value as a file stream specifier
> $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
|
|---|