Thread Bitte um Hilfe bei bless Fehler
(39 answers)
Opened by bianca at 2019-09-28 17:06 Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # das da einbauen vor dem Aufruf bless $in_out{foot},'main'; sub AUTOLOAD{ my $self = shift; # parse den Namen der Funktion my $name = do{ our $AUTOLOAD =~ /::(\w+)/; $1; }; my $code = $self->{$name}; return $code->(@_); } sub DESTROY{}; # hack end # # Dein Funktionsaufruf $test2{insub}->(\%in_out); MFG Erläuterungen: Es sind 2 Dinge die notwendig sind, 1. die Referenz blessen und 2. dafür sorgen daß es die Funktion gibt die namentlich aufgerufen werden soll. Letzteres erledigt Perl's AUTOLOAD Mechanism. Der Name der aufgerufenen Funktion wird ermittelt, und damit hast Du den Key im Hash welcher den CODE liefert. Und der CODE wird dann ausgeführt. . Last edited: 2019-09-28 18:19:10 +0200 (CEST) |