[OT] Wrapping methods
David Cantrell
david at cantrell.org.uk
Mon Jul 6 17:21:26 BST 2009
On Mon, Jul 06, 2009 at 05:06:03PM +0100, Nicholas Clark wrote:
> but Generic::Base::ClassWithTimeout has done something funky to wrap &run
> in a routine that does the eval block/alarm/$SIG{ALARM} handler?
> Basically, the fun is that I'd like to do something equivalent to invert the
> order of inheritance, such that the parent's &run seems to be called first,
> and it can "SUPER" delegate to its child.
You can't use inheritance for this. You need to detect whenever a class
is loaded - perhaps by doing some Voodoo in @INC or %INC. Then to
figure out which classes inherit from your class, use Class::CanBeA, and
then Hook::LexWrap or something similar to wrap its run() method.
It sounds like this would be terribly fragile though. eg, if run() is
AUTOLOADed or otherwise defined at runtime.
--
David Cantrell | London Perl Mongers Deputy Chief Heretic
Hail Caesar! Those about to vi ^[ you!
More information about the london.pm
mailing list