use strict; use warnings; use Carp; sub generate { my ( $name ) = @_ ; return sub { local *__ANON__ = $name # M A G I C if $name; carp "***sub called***"; } } sub super { my $not_named = generate(); $not_named->(); my $named = generate('HulaHoop'); $named->(); } super();