and proceed press the Selection button, the program will only capture the data from the second iteration and not the first. I also get the following message from the debugger:use strict; use warnings; use Tk; use Tk::Pane; my $mw = MainWindow->new; $mw->geometry(q/+100+100/); $mw->title("Test Script"); my %lbhash; # you want to use the listbox to hold your # data, so store the widget's actual object # with the name you want to give it my @choices = ('afg', 'dfg', 'erty'); my @divisional_unit =('Division Unit Left','Division Unit Middle','Div +ision Unit Right'); my $text=""; my $count = 0; my $num=$count++; my $count1 = 0; my $num1=$count1++; my $count2 = 0; my $num2=$count2++; my $count3 = 0; my $num3=$count3++; my @labels=("Left Text Header", "Middle Text Header", "Right Text Head +er"); my @labels1=("LC", "MC", "RC"); my @list = ("LC", "MC", "RC"); my %entry; my $inbox; my %checkbox; my $settings; for (1..2) { foreach my $choice(@divisional_unit){ my $pane = $mw->Scrolled('Pane')->pack(-side => 'left'); #create a has for the entry widget $entry{$labels[$num++]} = $mw->Entry(-textvariable=>$text)->pack(-side +=>'left'); my $checkbox = $mw -> Checkbutton(-text=>$labels1[$num2++], -variable=>\$settings->{checkbuttons}->{$list[$num3++]},-offvalue= +>0,-onvalue=>1)->pack(-side=>'left'); my $label = $pane->Label(-text=> $choice, -bg=>'lightseagreen') ->pack(-side=>'top'); $lbhash{ $choice }{'widget'} = $pane->Listbox(-bg => 'white', -selectmode => 'extended', -exportselection=> 0 )->pack(-side=>'bottom'); #my @random_data; #for(1..20){push @random_data ,int rand(100) } $lbhash{ $choice }{'widget'} ->insert( 'end', @choices); #} } } $mw->Button( -text => "Selections", -command => sub{ foreach my $key( sort keys %lbhash ){ my @selects = $lbhash{ $key }{'widget'}->curselection; print "$key: "; foreach my $select (@selects){ print $lbhash{ $key }{'widget'}->get($select),' '; } print "\n\n"; } foreach my $key1( sort keys %entry ){ my @selects2 = $entry{$key1}->get(); print "$key1:"; foreach my $s (@selects2) { print $s,"\n"; } } print join( "\n", grep { $settings->{checkbuttons}->{$_} +} @list ); } )->pack( -side => 'bottom' ); $mw->Button( -text => "Done", -command => \&exit )->pack(-side=>'botto +m'); MainLoop;
The array variables the debugger is reporting are uninitialised and are at the top of the program. See previous post in thread (i.e my @list,@labels). What should I be doing to correct the problem? Is it a problem with local vs. global scoping or is it a garbage collection issue? Thanks again.Use of uninitialized value within @labels in hash element at C:\Users\ +Ettore Vecchione\Desktop\FAO ORG CHART APP\grid3.pl line 58. Use of uninitialized value within @list in hash element at C:\Users\Et +tore Vecchione\Desktop\FAO ORG CHART APP\grid3.pl line 60. Use of uninitialized value within @labels in hash element at C:\Users\ +Ettore Vecchione\Desktop\FAO ORG CHART APP\grid3.pl line 58. Use of uninitialized value within @list in hash element at C:\Users\Et +tore Vecchione\Desktop\FAO ORG CHART APP\grid3.pl line 60. Use of uninitialized value within @labels in hash element at C:\Users\ +Ettore Vecchione\Desktop\FAO ORG CHART APP\grid3.pl line 58. Use of uninitialized value within @list in hash element at C:\Users\Et +tore Vecchione\Desktop\FAO ORG CHART APP\grid3.pl line 60.
In reply to Re^8: TK Gui Help
by GuiPerl
in thread TK Gui Help
by GuiPerl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |