Re: Package bestimmen
am 18.05.2007 08:59:44 von Ferry BolharFrank Seitz:
> Oh ja, unter Perl 5.8.8 funktioniert es, wie ich es auch erwartet habe.
> Ich hatte unter Perl 5.8.6 gearbeitet, da kommt "main" raus.
> Dann handelt es sich wohl um einen Bug in der Version.
Ja. Die Funktion "m()" wird wohl in das Package "P" kompiliert,
aber das __PACKAGE__ Schlüsselwort vom Compiler falsch
übersetzt. Interessanterweise wird auch "main" ausgegeben, wenn
man test.pl in einem anderen Package kompiliert oder ein Block-
eval statt einem String-eval verwendet. Das ist bzw. war wirklich
ein Bug.
Schön, dass nicht nur immer ich auf seltsame Dinge stoße! ;-))
Ist übrigens schon in 5.8.7 behoben.
PS: Wen's interessiert: ich habe mir das Ganze mit dem Deparse-
Modul angesehen:
use B::Deparse;
...
print B::Deparse->new->codref2text(\&P::m);
gibt die kompilierte Methode aus.
LG, Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at