Thread Starten einer Subroutinen mit Parameter aus einer Variable
(1 answers)
Opened by Hagen at 2008-06-30 13:57
Hallo,
folgendes Konstrukt funktioniert bei mir Problemlos: Code (perl): (dl
)
1 2 3 my $ch = lc(substr($data->{'titel'}, $data->{'underline'}, 1)); my $start_sub = $data->{'key'}.'_main'; $mw->bind('<'.$ch.'>', sub { \{&$start_sub}; } ); In $ch steht z.B. t und in start_sub steht PopUp_main; d.h. wenn t gedrückt wird, wird die Subroutinen PopUp_main gestartet. Jetzt möchte ich aber an die Subroutinen PopUp_main noch einen Parameter übergeben. Ein Versuch war Code (perl): (dl
)
my $start_sub = $data->{'key'}.'_main($mw)'; oder Code (perl): (dl
)
my $start_sub = $data->{'key'}."_main($mw)"; Leider hat beides nicht funktioniert. Beim erste erhalte ich die Rückmeldung: Code: (dl
)
Tk::Error: Can't use string ("PopUp_main($mw)") as a subroutine ref while "strict refs" in use beim zweiten Code: (dl
)
Tk::Error: Can't use string ("PopUp_main(MainWindow=HASH(0x4") as a subroutine ref while "strict refs" Wenn ich das richtig erkenne, wird mein Parameter noch als Name der Subroutinen genutzt. Hat irgendwer vielleicht eine Idee, wie ich den Parameter richtig angeben kann? Gruß
Hagen |