in reply to Re^3: Global vs. local?
in thread Global vs. local?
And I think it should, but it doesn't (minor change, didn't include everything)#!/usr/bin/perl use Win32::GUI; my $w = 800; my $h = 800; my $i; $main = Win32::GUI::Window->new( -name => 'main', -width => $w, -height => $h, -menu => $menu, ); $main->AddButton( -height => 20, -width => 100, -text => 'Go!', -name => 'execute', -top => 20, -left => 650, -tabstop => 1, ); $main->Show(); Win32::GUI::Dialog(); sub another_sub { $top = 50; for ($x = 0; $x <= 2; $x++) { $uniqueWindow[$i] = $main->AddTextfield( -height => 200, -width => $w-30, -background => [255,255,255], -top => $top, -left => 10, -text => "", -name => $i."Textfield", -align => left, -readonly => 1, -multiline => 1, -autovscroll => 1, -vscroll => 1, ); $uniqueWindow[$i]->SetLimitText(1000); $top+=205; $i++; } } sub execute_Click { another_sub(); foreach $j (0..$i-1) { $SUB = $j."Textfield_MaxText"; print "-->Assigning sub function for $j\n"; my $idx = $j; # make a copy my $SUB = "${idx}Textfield_MaxText"; *$SUB = sub { variableMaxText( $idx ); } } for ($x=0;$x<100;$x++) { foreach my $txt (0..$i-1) { $uniqueWindow[$txt]->Append("Characters to make it overflo +w"); } } } sub variableMaxText { my ($self) = $_[0]; print "Variable window got maxtexted ($self).\n"; $uniqueWindow[$self]->Text(""); }
Output from the success:foreach $j (0..$i-1) { $SUB = $j."Textfield_MaxText"; print "-->Assigning sub function for $j\n"; my $SUB = "${idx}Textfield_MaxText"; *$SUB = sub { variableMaxText( $j ); } }
Output from the failure:-->Assigning sub function for 0 -->Assigning sub function for 1 -->Assigning sub function for 2 Variable window got maxtexted (1). Variable window got maxtexted (2). Variable window got maxtexted (1). Variable window got maxtexted (2).
And if we get crazy and assign my $j where I define my $i:-->Assigning sub function for 0 -->Assigning sub function for 1 -->Assigning sub function for 2 Variable window got maxtexted (). Variable window got maxtexted ().
-->Assigning sub function for 0 -->Assigning sub function for 1 -->Assigning sub function for 2 Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2). Variable window got maxtexted (2).
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: Global vs. local?
by Corion (Patriarch) on May 28, 2009 at 12:10 UTC | |
|
Re^5: Global vs. local?
by ig (Vicar) on May 28, 2009 at 12:35 UTC |