Thread Starten einer Subroutinen mit Parameter aus einer Variable (1 answers)
Opened by Hagen at 2008-06-30 13:57

Hagen
 2008-06-30 13:57
#111685 #111685
User since
2007-09-06
233 Artikel
BenutzerIn
[default_avatar]
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

View full thread Starten einer Subroutinen mit Parameter aus einer Variable