use Tk; require Tk::BrowseEntry; #use warnings; use strict; my ($entry,$f,$mw,$top,$entry2,$f1); $mw = MainWindow->new(-title => "Organizational Chart Generator"); $mw->geometry( "800x400" ); $f = $mw->Frame(-borderwidth => 2, -relief => 'groove') ->pack(-side => 'top', -fill => 'x'); $entry = $f->Label(-text=>"Division Title:")->pack(-side => "left", -anchor => "n", -fill => "x", -expand => "y"); $entry = $f->Entry( -textvariable => '', -width => 40); $entry->pack(-side => "left", -anchor => "n", -fill => "x", -expand => "y"); my $addbutton = $f->Button(-text => "Add Chart Blocks", -command => \&addwidget )->pack(-anchor => 's'); my $addbutton2 = $f->Button(-text => "Generate Chart", -command => \&genchart )->pack(-anchor => 's'); $mw->Button(-text=>'exit', -command=>sub{exit;})->pack(); MainLoop; sub addwidget { my @divisions = qw (AF AF CSPL CSPL CSO DGG DG FR FRAT OC OCX OCX OC); my @unique; my %seen; @unique = grep { ! $seen{$_}++ } @divisions; my @s = sort {$a cmp $b} @unique; my $f1 = $f->Frame->pack(-side => 'top', -expand => 1, -fill =>'y', -before => $addbutton); # my $f2 = $f->Frame->pack(-side => 'top', -expand => 1, # -fill =>'y', -before => $addbutton2); $mw = $f1->Label(-text=>"Division Unit:")->pack( -side => "left", -anchor => "n", -fill => "x", -expand => "y"); $mw = $f1->Entry( -textvariable => '', -width => 40); $mw->pack(-side => "left"); $f1->ScrlListbox(-label => 'Right-Hand Area of Chart', -selectmode => 'multiple', -height => 5, -listvariable => \@divisions, -exportselection => 0) ->pack(-ipady => '5', -side=>'left'); $mw = $f1->Entry(-textvariable => '', -width => 40); $mw->pack(-side => "left",); $f1->ScrlListbox(-label => 'Middle Area of Chart', -selectmode => 'multiple', -height => 5, -listvariable => \@divisions, -exportselection => 0) ->pack(-ipady => '5', -side=>'left'); $mw = $f1->Entry(-textvariable => '', -width => 40); $mw->pack(-side => "left",); $f1->ScrlListbox(-label => 'Right-Hand Area of Chart', -selectmode => 'multiple', -height => 5, -listvariable => \@divisions, -exportselection => 0) ->pack(-ipady => '5', -side=>'left'); } sub genchart { #This does not work my @inds = $f1->curselection(); my @sels; foreach my $i ( @inds ){ print $f1->get( $i ), "\n"; } #I have tried this, and no luck. # print join ':', map { $_->Subwidget('entry')->get } @be; }