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 { ¤t_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.)
In Section
Seekers of Perl Wisdom