|laziness, impatience, and hubris|
Need help with clashing method namesby dk (Chaplain)
|on Feb 13, 2009 at 14:13 UTC||Need Help??|
dk has asked for the
wisdom of the Perl Monks concerning the following question:
I'll need help with the following problem. Consider we have a class A, that inherits from class C and uses some syntax sugar as defined in B. Here's A:
and here's C:
all three in 3 different files, for example. Now, running that code, surprisingly for me, yields "B::moo" twice, whereas I'd expect that first time it would print "C::moo". As you can see, B::moo is being invoked instead of C::moo.
Now, the question. I understand how it works, but I don't know, if there are any good practices to protect A and C from being abused that way? It's a fairly realistic scenario if A doesn't know that C::moo exists at all, or even worse, doesn't exist today but will exist in a newer version of C. It's not uncommon to have third-party modules to export names, but is there a simple technique to import them in a safer manner?