http://www.perlmonks.org?node_id=1054727


in reply to method aliases with goto(&NAME)

What are your motivations?

Modify the stack to pretend `legacy_method` wasn't called is surely detrimental. You could avoid that (and speed things up an itsy bit) with the following:

sub legacy_method { &current_method; }

But both the above and your approach fail when a child class overrides current_method. I'd use the following:

sub legacy_method { my $self = shift; $self->current_method(@_); }

(Which actually works and avoids needless copying unlike the code you presented as the baseline.)