Araviz has asked for the wisdom of the Perl Monks concerning the following question:
I have a listbox with several entries. An operation will be performed on the selected entry when a button is pushed. I'd like to know if the user has in fact selected an entry before I try to execute the operation. All my attempts have continued to generate the above error. Is there a way to compare the return of the curselection function without this error?
#!/usr/bin/perl -w use warnings; use strict; use Tk; my @lst_files = (0...10); my $file; my $mw = new MainWindow; my $frm1 = $mw -> Frame(-bg=>'LightSkyBlue1') -> pack(-fill => 'x'); my $frm11 = $frm1 -> Frame(-bg=>'LightSkyBlue1')->pack(-fill => 'x'); my $lst = $frm11 -> Scrolled('Listbox', -width => 50, -height => 5, -scrollbars => 'oe', -selectmode => 'single' ) -> pack(-side => 'bottom'); $frm1 -> Button(-width => 15, -text => "fill", -command =>\&fill_boxes +) -> pack(-side => 'top'); $frm1 -> Button(-width => 15, -text => "print", -command =>\&sample) - +> pack(-side => 'top'); MainLoop; sub fill_boxes { $lst -> delete ('0.0', 'end'); $lst -> insert('end', @lst_files); } sub sample { if($lst->curselection ne '') # <- Error msg points here { #Extract Application File Selection $file = $lst -> get($lst -> curselection); print "$file\n"; } # and then more happens }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Can't call method "curselection" on an undefined value
by GrandFather (Saint) on Apr 13, 2011 at 02:48 UTC | |
by lamprecht (Friar) on Apr 13, 2011 at 09:17 UTC | |
by GrandFather (Saint) on Apr 13, 2011 at 09:53 UTC | |
|
Re: Can't call method "curselection" on an undefined value
by Eliya (Vicar) on Apr 12, 2011 at 19:22 UTC |