#!/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).
|