in reply to Try::Tiny catch block with $_ eq ''
The only "errors" that Try::Tiny cares about are die. (Though this also includes Carp::croak(), Carp::confess(), etc, because they call die internally.)
The only way I can reproduce $_ eq "" is to call die($e) where $e is a blessed object with overloading, that overloads eq or "" to compare equal to the empty string.
$ perl -MTry::Tiny -MData::Dumper -e'my $e = do { package E; use overl +oad q[""] => sub {""}, fallback=>1; bless [] }; try { die $e } catch +{ print Dumper($_ eq "") }'
Update: oh yes; the other thing worth thinking about... are you using my $_ anywhere in this lexical scope? (Or given/when?) The lexical version of the $_ variable could be masking the global one (which is what Try::Tiny uses). Try starting your catch block with our $_; and see if that makes any difference.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Try::Tiny catch block with $_ eq ''
by dd-b (Pilgrim) on May 16, 2013 at 22:37 UTC |