in reply to Named evals?

You can also name the subroutine by using Sub::Name:

use Carp; use Sub::Name; subname( my_anonymous_sub => sub { croak("Whee!"); } )->(); __END__ Whee! at - line 6 main::my_anonymous_sub() called at - line 8
The benefit of this is that you don't name all anonymous subroutines that are called inside this anonymous subroutine.
use Carp; use Sub::Name; subname( my_anonymous_sub => sub { sub { carp("subname"); }->() } )->(); sub { local *__ANON__ = 'my_anonymous_sub'; sub { carp("*__ANON__"); }->() }->(); __END__ subname at - line 7 main::__ANON__() called at - line 8 main::my_anonymous_sub() called at - line 10 *__ANON__ at - line 15 main::my_anonymous_sub() called at - line 16 main::my_anonymous_sub() called at - line 17

lodin