Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
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


Comment on Re: Dispatcher to module's method
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1067116]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (12)
As of 2014-10-02 14:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    What is your favourite meta-syntactic variable name?














    Results (61 votes), past polls