in reply to Re^2: Changing the name of a function in the call stack
in thread Changing the name of a function in the call stack
This is inferior to Sub::Name for two reasons:
- you have to put the magic line inside the anon sub
- all other anon subs down the call stack are renamed too, which is misleading
Still, it's good to know that it's possible to do it in pure perl.use strict; use warnings; use Carp; sub foo { my $bar = sub { carp "*** inner anon sub called***"; }; $bar->(); } sub generate { my ( $name ) = @_ ; return sub { local *__ANON__ = $name if $name; carp "***sub called***"; foo(); } } sub super { my $not_named = generate(); $not_named->(); my $named = generate('HulaHoop'); $named->(); } super();
In Section
Seekers of Perl Wisdom