Given -


#!/usr/bin/perl -w

# use strict;
# use diagnostics;
# use warnings;

my @strings = ( q(my $bad_syntax = ;),
                q('a poorly 'nested' string'),
                q('a poorly 'nested::test' string') );

foreach (@strings) {
#       no warnings;
        eval;
}

print "\n\nProgram exited normally...";


Results:


Bareword found where operator expected at (eval 3) line 1, near "'a poorly 'nested::test"
(Missing operator before nested::test?)
String found where operator expected at (eval 3) line 1, near "nested::test' string'"



Program exited normally...



Reasoning:


Each 'eval' (of the three only two are invalid) are the only portion of the script which is dying - and rightly so - but this "death" doesnt propagate to the main logic.

So, my question now is -- Why is this a bug?
-Sx-

PS -

#!/usr/bin/perl -w

use strict;
use diagnostics;
use warnings;

$_ = ( q(my $bad_syntax = ;) );

# no warnings;
eval;

print "\n\nNormal Program Exit\n\n";

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Reply via email to