$ perl -E 'open my $fh, ">", "xxx"; close $fb; open my $fh, ">", "yyy"'
$
####
$ perl -E 'use strict; use warnings; open my $fh, ">", "xxx"; close $fb; open my $fh, ">", "yyy"'
"my" variable $fh masks earlier declaration in same scope at -e line 1.
Global symbol "$fb" requires explicit package name (did you forget to declare "my $fb"?) at -e line 1.
Execution of -e aborted due to compilation errors.
ken@ganymede: ~/tmp
$
####
$ perl -E 'use strict; use warnings; { open my $fh, ">", "xxx"; } open my $fh, ">", "yyy"'
$
####
use strict;
use warnings;
####
die "CANNOT OPEN LOG";
####
die "CANNOT OPEN LOG '$logfilename': $!";
####
select $fh;
print "...";
select STDERR;
print "...";
select STDOUT;
print "...";
####
print $fh "...";
print STDERR "...";
print "...";
####
my $open_ok = open my $fh, $mode, $filename;
if (not $open_ok) {
# custom error handling here
}
####
#!/tps/bin/perl
use strict;
use warnings;
use autodie;
{
my $logfilename = './test.log';
open my $fh, '>>', $logfilename;
print $fh "...";
print "...";
}
{
my $logfilename = './test2.log';
no autodie 'open';
my $open_ok = open my $fh, '>>', $logfilename;
use autodie 'open';
if (not $open_ok) {
my $os_error = $!;
print "Can't open '$logfilename': $os_error\n";
die "Can't open '$logfilename': $os_error";
}
print $fh "...";
print "...";
}