Thread Funktion mit Parameterübergabe: Parameter-Variable wird falsch gesetzt
(6 answers)
Opened by TheDHK at 2007-01-22 16:04
Hi,
ich habe in einem Perl-Skript folgende for-Schleife: Code (perl): (dl
)
1 2 3 4 5 for(my $j = 0;$j < @name;$j++) { $profilframe->Label( -image => $photos[$j], -background => 'sky blue' )->place(-x=>'5', -y => $y + 3); $profilframe->Button( -text=>$name[$j], -background => 'sky blue', -font=>'{Bimini} 12 {bold}', -relief=>'flat', -activebackground => 'yellow', -command => sub { zeige_beschreibung($j); } )->place(-x=>'28p', -y => $y); $y += 35; } Dadurch werden zwei Buttons erzeugt. Wie ihr seht, rufe ich bei command eine Subroutine mit einem Parameter auf. Der übergebene Parameter sollte beim ersten Button 0 sein und beim zweiten 1 (ist ja logisch, da $j ja bei jedem Schleifendurchlauf um 1 erhöht wird). Die dazugehörige Subroutine sieht so aus: Drücke ich nun auf einen der Buttons (egal auf welchen), so wird stets 2 im DOS-Fenster ausgegeben (ich lasse ja mit "print $_[0];" den übergebenen Parameter ausgeben). Das wundert mich doch sehr, da er ja eigentlich beim ersten Button 0 und beim zweiten 1 ausgeben werden müsste. Weiß jemand, warum das so komisch ist und wie ich das ändern kann? Gruß TheDHK |