Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Dispatcher to module's method

by 2teez (Priest)
on Dec 14, 2013 at 08:49 UTC ( #1067116=note: print w/replies, xml ) Need Help??


in reply to Dispatcher to module's method

Hi Anonymous,
...to a module's method when two modules have the same method name...
But if there's a conflict of method names, is there a way to unambiguously call a module's method?...


Though you have been given a great answer, I consider it not over "stressed" to say your requirements taste like an Object-Oriented in IMHO.
Since, the first two principle stated in perlobj answers thus:

1. An object is simply a data structure that knows to which class it belongs.
2. A class is simply a package. A class provides methods that expect to operate on objects.

So, awakening the Old dragon of OOP in Perl ( Yes, I know the "new" beasts ( Moose and it's different cousins ) are good extension of the Perl 5 object system ), one can do:
package Module1; sub main { my $obj = shift; my $class = { name => __PACKAGE__, }; return bless $class, $obj; } package Module2; sub main { my $obj = shift; my $class = { name => __PACKAGE__, }; return bless $class, $obj; } package main; my $an1 = Module1->main(); print $an1->{name}, $/; my $an2 = Module2->main(); print $an2->{name}, $/; ## And if you must use your dispatch table ## you can do my %dispatch = ( main => Module1->main(), another_page => Module2->main(), ); print "Am in ", $dispatch{main}{name}, $/; print "Am in ", $dispatch{another_page}{name};

NOTE:
All emphasis mine, to note my line of thought ( I hope, I didn't misinterpret the OP question)
both use warnings and strict were used though not stated.
If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author unknown to me

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1067116]
help
Chatterbox?
[Discipulus]: in this ubuntu i'm not able to find resource monitor, graphical mount program.. just office and amazon are exposed!
[Corion]: Whooops - I misread and miuxed Ubuntu and the ActiveState Perl question. Sorry!
[Corion]: Discipulus: Hurr - I'd use the command line, as always

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2016-12-07 09:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (125 votes). Check out past polls.