jsteng has asked for the wisdom of the Perl Monks concerning the following question:
Whenever I click on a button, it always print "16,16", the last values of $i, $j. How should I pass the values of $i,$j so it passes the value of $i,$j the instant it was iterated? thanks!my $mw = MainWindow->new( -bg=> '#606060', -borderwidth=> 0); my $size = 40; my $y = 0; my $x = 0; my $h = 3*$size; for (my $j=0; $j<16; $j++) { my $x = 0; my $w = 3*$size; for (my $i=0; $i<16; $i++) { $frames{"$i,$j"} = $mw->Button( -text => ' ', -bg => "#60C8BC" +, -fg => "#000000", -borderwidth => 1, -anchor => 'w', ); $frames{"$i,$j"}->bind('<Button-1>' => sub { &ToggleBox("$i,$j +"); } ); $frames{"$i,$j"}->place( -y=>$y, -x=>$x, -width=>$w, -height=> +$h ); $x = $x + $w; $w = $size; $x = $x+2 if ($i % 5 == 0); } $y = $y + $h; $h = $size; $y = $y+2 if ($j % 5 == 0); } sub ToggleBox { my $this = shift; print "$x,$y\n"; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: How to pass parameter to a subroutine?
by stevieb (Canon) on Mar 03, 2020 at 00:08 UTC | |
|
Re: How to pass parameter to a subroutine?
by AnomalousMonk (Archbishop) on Mar 03, 2020 at 00:53 UTC | |
|
Re: How to pass parameter to a subroutine?
by tybalt89 (Monsignor) on Mar 03, 2020 at 02:39 UTC |