in reply to How to get the name of an aliased function
One reason you may want to have three different subs is that MainSub may do wildly different things, depending on the value of the first parameter. In which case it would probably be better to split MainSub into three smaller subs, each doing only a single task:
Depending on the conceptual structure of your problem, you might instead create a base class with a virtual method and three derived classes with method overrides.sub MainSub { my $name = shift; if ($name eq 'Bob') { sub1(@_); } elsif ($name eq 'Ted') { sub2(@_); } elsif ($name eq 'Alice') { sub3(@_); } else { die "First parm $name should be Bob, Ted, or Alice\n"; } }
But any of the methods above is better that trying to use an alias to in effect pass a parameter. Aliases would be more indirect, more confusing, and harder to debug.
-Mark
|
|---|