[vienna.pm] blessing?

Johannes Fuernkranz juffi at ai.univie.ac.at
Mon Apr 15 03:20:54 CDT 2002


* * * vienna-pm-list * * *


roland.bauer at fff.at wrote:
> 
> Ich glaube, das ist die Loesung, obwohl ich mir einbilde, in einem
> Buch die Funktion "blessed" entdeckt zu haben. Aber ich finde
> diese Stelle nicht mehr ...

Am Wochenende hab ich mir folgende Lösung zusammengereimt:

Die Mutter aller Klassen, UNIVERSAL, hat natürlich auch eine 
isa-Methode. Die kann ich zwar in diesem Fall nicht als Methode mit 
$ref->isa() aufrufen (weil ich ja nicht weisz, ob $ref geblesst ist, 
sondern genau das herausfinden will). Aber man kann sie offenbar als 
Funktion aufrufen, und testen, ob $ref eine Subklasse von UNIVERSAL ist.

sub blessed {
   my $ref = shift;
   UNIVERSAL::isa($ref,'UNIVERSAL');
}

Für meine Zwecke scheint´s zu funktionieren. Ob es ganz wasserdicht ist, 
weiß ich nicht.

> Und ich erinnere mich, dass dort nochmals darauf hingewiesen
> wurde, dass Packagenamen mixed case sein sollen. Denn 'ARRAY', 'HASH', ...
> bestehen ja ausschliesslich aus Grossbuchstaben.

Ja, aber UNIVERSAL auch, so wie CPAN oder CGI oder WWW.
Damian hat auch Beispiele in seinem OO-Buch, die nicht dieser Konvention 
entsprechen (z.B. das Package CD zur Verwaltung von CDs, welches (genau 
wie WWW) in  mixed case seltsam aussehen wuerde.

Auf jeden Fall danke für die Antwort!

						Juffi

###
You are subscribed to vienna-pm-list as Johannes Fuernkranz <juffi at ai.univie.ac.at>
http://www.fff.at/fff/vienna.pm/



More information about the Vienna-pm mailing list