in reply to method aliases with goto(&NAME)
Won't somebody please think of the children?!?!.
package Parent { sub legacy_method { my ($self, @args) = @_; return $self->current_method(@args); } sub current_method { return 1; } } package Child { use base 'Parent'; sub current_method { return 2; } } Child->legacy_method; # returns 2
If you swap in your goto implementation of the legacy method, then calling Child->legacy_method returns 1.
Here's an alternative safer version using goto...
sub legacy_method { my $next = $_[0]->can('current_method'); goto $next; }
See also http://tvtropes.org/pmwiki/pmwiki.php/Main/ThinkOfTheChildren.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: method aliases with goto(&NAME)
by LanX (Saint) on Sep 18, 2013 at 13:01 UTC | |
by tobyink (Canon) on Sep 18, 2013 at 13:26 UTC | |
by LanX (Saint) on Sep 18, 2013 at 14:53 UTC | |
by ikegami (Patriarch) on Sep 18, 2013 at 19:27 UTC |