in reply to Re^2: readline() on closed filehandle
in thread readline() on closed filehandle

... certainly the 2nd --
" ...avoid such similar names for two different things." (emphasis added!)

++ choroba.

But I'm not sure the first really cures anything. choroba's first comment got me experimenting with code minimally modified from the OP's ...

#!/usr/bin/perl use strict; use warnings; use 5.012; # #930268 my $OUTFILE; my @outfile=("F:/_Perl_/pl_test/abcd.out", "dev/nul/xyz.out"); for my $outfile(@outfile) { # $OUTFILE is a glob; dereference using $$OUTFILE. Otherwise warni +ng is ambiguous:'not open GLOB(0x1628c24) using' open ($OUTFILE,">", $outfile) or warn "\t Could not open $$OUTFILE + using \$outfile ($outfile), $!"; say "\t \$outfile is now $outfile"; print $OUTFILE "I wuz here in vers 1\n" or warn "\t Problem is wit +h \$outfile: $outfile\n"; close ($OUTFILE); } say "\n\n" . "-" x10 . " 2nd vers using lc \$outfile in the 'die'\n"; my $OUTFILE2; my @outfile2 = ("F:/_Perl_/pl_test/abcd2.out", "dev/nul/pqrst.out"); for my $outfile2(@outfile2) { say "\t \$outfile2 is currently $outfile2"; open ($OUTFILE2,">", $outfile2) or warn "\t Could not open $outfil +e2 using \$outfile2, $!"; print $OUTFILE2 "vers 2 produced this line\n" or warn "\t Problem +is with \$outfile2: $outfile2\n"; close ($OUTFILE2); }

The results don't seem to me to support a preference for which $var to 'die' (or, in my code, to 'warn'):

F:\_Perl_\pl_test>F:\_Perl_\pl_test\930268.pl $outfile is now F:/_Perl_/pl_test/abcd.out Could not open *main::$OUTFILE using $outfile (dev/nul/xyz.out), + No such file or directory at F:\_Perl_\pl_test\930268.pl line 12. $outfile is now dev/nul/xyz.out print() on closed filehandle $OUTFILE at F:\_Perl_\pl_test\930268.pl l +ine 14. Problem is with $outfile: dev/nul/xyz.out ---------- 2nd vers using lc $outfile in the 'die' $outfile2 is currently F:/_Perl_/pl_test/abcd2.out $outfile2 is currently dev/nul/pqrst.out Could not open dev/nul/pqrst.out using $outfile2, No such file o +r directory at F:\_Perl_\pl_test\930268.pl line 25. print() on closed filehandle $OUTFILE2 at F:\_Perl_\pl_test\930268.pl +line 26. Problem is with $outfile2: dev/nul/pqrst.out 10/08/2011 09:06a 22 abcd.out # content as expected + from the code above 10/08/2011 09:06a 27 abcd2.out # " 2 File(s) 49 bytes

Those with greater wisdom may add insight with their comments (I hope).