in reply to bad die behaviour?
$ perl -e 'sub {die}'
is just setting up an anonymous subroutine in void context then exiting with a normal termination status because it never actually dies. Note the following
$ perl -e '$sub = sub {die}; $sub->();' Died at -e line 1. $ echo $? 255 $
Cheers,
JohnGG
Update: To test behaviour in a script rather than on the command line.
use strict; use warnings; sub toDieFor { my $v = shift; die qq{Died with $v}; } my $value = shift; toDieFor($value) if $value > 10; print qq{Normal termination\n};
Running this a couple of times
$ spw638035 3 Normal termination $ spw638035 33 Died with 33 at spw638035 line 9. $ echo $? 255 $
Perhaps you could shows us an actual code sample that triggers the behaviour you describe.
|
---|