Thread Mehrfachvererbung Perl5 native
(16 answers)
Opened by rosti at 2023-11-04 10:40
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! |