The problem is that the behavior of $@ and its
XS equivalents G_EVAL|G_KEEPERR have changed
as of perl version 5.14.0. The code works and shows
the traceback for perl 5.10.1 on cygwin:
pdl> sub t { barf "uh-oh" }
pdl> t
uh-oh at (eval 161) line 4
main::t() called at (eval 163) line 4
main::__ANON__() called at /usr/local/bin/perldl line 666
eval {...} called at /usr/local/bin/perldl line 666
main::eval_and_report('t\x{a}') called at /usr/local/bin/perldl line 604
main::process_input() called at /usr/local/bin/perldl line 624
eval {...} called at /usr/local/bin/perldl line 624
while for perl 5.16.0 with SPP (Strawberry Perl Portable):
pdl> sub t { barf "uh-oh" }
pdl> t
and, yes, there is no error or message of any sort.
I'm putting this in as a placeholder. If you need
more up-to-date exception handling, please install
Devel::REPL and use the new pdl2 shell instead
of the legacy perldl one.
Bug fixed in Git.
Thanks for reporting the problem!
F:\chm\perl\strawberry>perldl
perlDL shell v1.354_001
PDL comes with ABSOLUTELY NO WARRANTY. For details, see the file
'COPYING' in the PDL distribution. This is free software and you
are welcome to redistribute it under certain conditions, see
the same file for details.
ReadLines, NiceSlice, MultiLines enabled
Reading PDL/default.pdl...
Found docs database F:/chm/perl/strawberry/spp_5161/perl/site/lib/PDL/pdldoc.db
Type 'help' for online help
Type 'demo' for online demos
Loaded PDL v2.4.11_001 (supports bad values)
Note: AutoLoader not enabled ('use PDL::AutoLoader' recommended)
pdl> sub t { barf "uh-oh" }
pdl> t
pdl> q
F:\chm\perl\strawberry>perl spp_5161\perldl
perlDL shell v1.355
PDL comes with ABSOLUTELY NO WARRANTY. For details, see the file
'COPYING' in the PDL distribution. This is free software and you
are welcome to redistribute it under certain conditions, see
the same file for details.
ReadLines, NiceSlice, MultiLines enabled
Reading PDL/default.pdl...
Found docs database F:/chm/perl/strawberry/spp_5161/perl/site/lib/PDL/pdldoc.db
Type 'help' for online help
Type 'demo' for online demos
Loaded PDL v2.4.11_001 (supports bad values)
Note: AutoLoader not enabled ('use PDL::AutoLoader' recommended)
pdl> sub t { barf "uh-oh" }
pdl> t
uh-oh at (eval 85) line 4.
main::t() called at (eval 86) line 4
main::__ANON__() called at spp_5161\perldl line 668
eval {...} called at spp_5161\perldl line 668
main::eval_and_report('t\x{a}') called at spp_5161\perldl line 604
main::process_input() called at spp_5161\perldl line 624
eval {...} called at spp_5161\perldl line 624
Bug fixed in Git.
Thanks for reporting the problem!