Foo Ji-Haw <> wrote:
> Hey William,
>
> Ok, I've dug around, and I've got a working solution to my problem.
> It's a bit ugly though:
>
> package BaseClass;
> ...
> sub doThis
> {
> my $pFunc;
> eval '$pFunc = \&'.ref($this).'::doThat';
> return threads->new($pFunc,$this);
> }
>
> package DerivedClass;
> ...
> sub doThat
> {
> ...
> }
>
> Essentially, the 3 lines of code does the following:
> 1. ref($this) returns the class name
> 2. eval is needed to get the pointer to the instance's overloaded
> class subroutine, and store it in $pFunc 3. use $pFunc directly as a
> parameter in new()
>
> My question is: is there a cleaner way to do this: ie without the use
> of eval?
Yes, see UNIVERSAL::can.
HTH
--
Brian Raven
=================================
Atos Euronext Market Solutions Disclaimer
=================================
The information contained in this e-mail is confidential and solely for the
intended addressee(s). Unauthorised reproduction, disclosure, modification,
and/or distribution of this email may be unlawful.
If you have received this email in error, please notify the sender immediately
and delete it from your system. The views expressed in this message do not
necessarily reflect those of Atos Euronext Market Solutions.
L'information contenue dans cet e-mail est confidentielle et uniquement
destinee a la (aux) personnes a laquelle (auxquelle(s)) elle est adressee.
Toute copie, publication ou diffusion de cet email est interdite. Si cet e-mail
vous parvient par erreur, nous vous prions de bien vouloir prevenir
l'expediteur immediatement et d'effacer le e-mail et annexes jointes de votre
systeme. Le contenu de ce message electronique ne represente pas necessairement
la position ou le point de vue d'Atos Euronext Market Solutions.
_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs