in reply to Giving subroutines access to themselves

If you don't mind violating strict temporarily (or perhaps I should say, locally), you can do it like this:
sub foo { my @c = caller(0); no strict; *{ $c[3] } = sub { new_definition_for_foo...; }; }

jdporter
...porque es dificil estar guapo y blanco.