return if ! defined $lst->curselection; #### #!/usr/bin/perl -w use warnings; use strict; use Tk; main(); sub main { 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 => sub {fill_boxes($lst, \@lst_files, @_)} )->pack(-side => 'top'); $frm1->Button( -width => 15, -text => "print", -command => sub {sample($lst, @_)} )->pack(-side => 'top'); MainLoop; } sub fill_boxes { my ($lst, $lst_files) = @_; $lst->delete('0.0', 'end'); $lst->insert('end', @$lst_files); } sub sample { my ($lst) = @_; return if ! defined $lst->curselection; if ($lst->curselection ne '') { #Extract Application File Selection my $file = $lst->get($lst->curselection); print "$file\n"; } # and then more happens }