B::Deparse does not know how to handle catch{} if it has a full ENTER/LEAVE scope.
This works:
$ ./perl -Ilib -MO=Deparse -e 'use feature qw(try); sub foo { try { 1; } catch ($e) { $e; } }'
try/catch is experimental at -e line 1.
try/catch is experimental at -e line 1.
use feature 'try';
sub foo {
try {
1;
}
catch($e) {
$e;
}
}
-e syntax OK
This doesn't:
$ ./perl -Ilib -MO=Deparse -e 'use feature qw(try); sub foo { try { 1; } catch ($e) { my $x; $e; } }'
try/catch is experimental at -e line 1.
try/catch is experimental at -e line 1.
While deparsing -e near line 1,
Expected scope as second child of catch at lib/B/Deparse.pm line 4075.
CHECK failed--call queue aborted.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4