in reply to Strange Perl/Tk error

The problem was on line 26. I changed ->pack(-side => packwith... to top:
#!/usr/bin/perl use strict; use warnings; use Tk; require Tk::BrowseEntry; my $mw=MainWindow->new; my $f=$mw->Frame(-borderwidth=>2)->pack(-side=>'top', -fill=>'x'); my (@packwith) =(); my $numwidgets=4; for(my $i=0;$i<$numwidgets;$i++) { my $be = $f->BrowseEntry(-label => "Widget $i", -choices => ["left +", "right", "top", "bottom"], -variable => \$packwith[$i], -browsecmd => \&repack) - +> pack( -ipady=>20); } my $b=$f->Button(-text =>"repack", -command=> \&repack)->pack(-side => + "bottom"); my $tl=$mw->Toplevel(-title=>"output"); for (my $i=0;$i<$numwidgets;$i++) { my $b=$tl->Button(-text=> "Button $i")->pack(-side => 'top'); } MainLoop; sub repack { my @slaves = $tl->packSlaves; my $j=0; foreach (@slaves) { $_->packForget; $_->pack(-text => "Button ".$j, -side=>\$packwith[$j++]); } }