Front page | perl.perl5.porters |
Postings from January 2000
Re: On Pseudohashes
Thread Previous
|
Thread Next
From:
Raphael Manfredi
Date:
January 17, 2000 06:27
Subject:
Re: On Pseudohashes
Message ID:
18595.948119283@lod23.gnb.st.com
Quoting tchrist@chthon.perl.com:
:Tim, some time ago something came up about autoloading method calls
:that bothered me in an MI scenario. Seems to me you respondedi
:similarly then. I'm pretty sure it was the following inheritance
:scenario:
:
: A
: \
: B C @B::ISA = ('A');
: \ /
: D @D::ISA = ('B', 'C');
:
:Suppose that each of those classes were using autoloading to generate
:its attribute accessors. If D->m() is called, and that method m()
:is really supposed to be handled iby C, there's no way for B's
:autoload to "super" it over to C. Instead, B::SUPER just gets to
:ascend to A--which doesn't help. You can never renege on an AUTOLOAD
:so that Perl's method lookup would treat that hit as a miss and
:then go on to inspect sibling branches of the tree.
I fail to see how AUTOLOAD is connected to this problem. Even if B did
not have an autoloaded m(), then A's m() would be used, since Perl
looks up the tree starting with B, in a depth-first order.
There's no way to "select" C::m() for polymorphic access of a D object,
but to reverse the order of declaration in @D::ISA. And that does not
scale well with a complex framework.
Raphael
Thread Previous
|
Thread Next