Maybe I'm not reading your description correctly, or maybe our versions of Exception::Class differ, but I don't see the behavior you're describing. Quite the opposite, in fact. The boolean test sees the exception, but the test against '' can't see it (because it stringifies to '').
use Exception::Class ( 'MyException' => { description => '' } ); eval { MyException->throw( message => '' ); }; if ($@) { print "I see you, exception class (boolean)!\n"; } else { print "Nothing to see here (boolean).\n"; } if ( $@ ne '' ) { print "I see you, exception class (ne '')!\n"; } else { print "Nothing to see here (ne '').\n"; } __END__ I see you, exception class (boolean)! Nothing to see here (ne '').
My version is 1.2, and I see this in it:
use overload # an exception is always true bool => sub { 1 }, '""' => 'as_string', fallback => 1;
In reply to Re^3: Question on "Effective Perl Programming"
by kyle
in thread Question on "Effective Perl Programming"
by jfroebe
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |