Thread Problem mit Klassen
(6 answers)
Opened by Gast at 2008-07-29 01:43
Bei Dir gehts, aber Du hast auch etwas geflunkert, denn in Zeile 032 greifst Du direkt auf den Klassen-Hash ActionsHash und so wird die Vererbung nicht gefordert. (Übrigens:
Code: (dl
)
%ActionsHash Mit dieser Zeile 032 funktioniert es und auch noch wenn ich das Beispiel auf drei Dateien verteile!: Code (perl): (dl
)
032: my $func = $Self->{'ActionHash'}->{ $action }->{'postaction'} ; Ich habe den modifizierten originalen _handle_event funktionierend in das Beispiel eingebaut. Nur gelingt es mir nach wie vor nicht das Ergebnis in das Gesamtprogramm zu übertragen. Die Fehlermeldung lautet weiterhin wie oben. :-( Vererbung funktioniert grundsätzlich, weil ich new() der Superklasse benutze und von dort _initialize() von "module_sources" aufrufe. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 sub _handle_event { my $Self = $_[0]; #my $actionarr = $_[1]; #---- my $dphase = 0; #$actionarr->[0]; my $module = ''; #$actionarr->[1]; my $action = 'edit'; #$actionarr->[2] ; #---- my $phase = $dphase ? 'doaction' : 'postaction'; my $result; my $error; my $actionshash = $Self->{'ActionHash'}; #------- if( exists $actionshash->{ $action }->{ $phase } && defined $actionshash->{ $action }->{ $phase } && ref( $actionshash->{ $action }->{ $phase } ) eq 'CODE') { my $func = $actionshash->{ $action }->{$phase} ; #------- if(!$dphase) { ($result, $error) = $func->( @_ ) ; } else { } } else { die "Kein ausfuehrbarer Eintrag gefunden!;"; } return ($result, $error); } |