In case die is overridden, you can call CORE::die instead.
Update: maybe I should mention that this wouldn't help much, though,
if the die should somehow happen to be trapped by an eval { ... } block (which I don't know)...
In this case, you could try something along the lines of
open my $fh, "<", $file or warn "Couldn't open '$file': $!" and ex
+it;
to force the program to terminate.
Consider this
my $file = "does-not-exist";
while (<STDIN>) {
eval {
open my $fh, "<", $file
or warn "Couldn't open '$file': $!" and exit;
};
print STDERR "ERROR: $@" if $@;
}
(which would actually terminate the program) vs.
while (<STDIN>) {
eval {
open my $fh, "<", $file
or CORE::die "Couldn't open '$file': $!";
};
print STDERR "ERROR: $@" if $@;
}
which would continue printing (despite the CORE::die)
ERROR: Couldn't open 'does-not-exist': No such file or directory at ./
+680735.pl line 10, <STDIN> line 1.
ERROR: Couldn't open 'does-not-exist': No such file or directory at ./
+680735.pl line 10, <STDIN> line 2.
...
...if you keep hitting the ENTER key.
(If necessary, you could of course also use CORE::warn or
CORE::exit in combination with the above...)
|