The usual way to generate various behaviors of a subroutine is by passing it parameters of various values, as you currently do. Your current setup is pretty reasonable, but do you really need to create three apparently different subroutines when passing a parameter will do?
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:
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";
}
}
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.
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.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.