Thread Bitte um Hilfe bei bless Fehler (39 answers)
Opened by bianca at 2019-09-28 17:06

rosti
 2019-09-28 18:12
#190566 #190566
User since
2011-03-19
3472 Artikel
BenutzerIn
[Homepage]
user image
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)

View full thread Bitte um Hilfe bei bless Fehler