Thread Mehrfachvererbung Perl5 native (16 answers)
Opened by rosti at 2023-11-04 10:40

Linuxer
 2023-11-04 19:06
#195406 #195406
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Die Module werden normalerweise in der Reihenfolge in @ISA hinterlegt, wie sie beim use base qw() angegeben waren.

Wenn dann später eine Methode nicht gefunden wird, dann werden diese Einträge in @ISA abgeklappert.

Das erste Modul, dass eine namentlich entsprechende Methode anbieten kann, gewinnt und diese Methode wird benutzt.

Bei use base qw( Foo Bar ); steht Foo vor Bar, und Foo::whois() wird als erstes genutzt.

Die Suche kann man "überspringen", indem man das gewünschte Modul mitbenennt:

Code (perl): (dl )
1
2
3
4
5
6
7
use parent qw( Foo Bar );

# Suche in @ISA nach Modul, das who_am_i() bereitstellen kann; Erster Treffer zieht
main->who_am_i();

# Bar muss in ISA sein; Methode Bar::who_am_i() wird direkt aufgerufen
main->Bar::who_am_i();
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Mehrfachvererbung Perl5 native