my %widgets = (); ... # your loops my $id = "f" . $j . $c; # Create identifier my $awidget = $frame->Text(-height => 6, -background => 'white', -width => 10) ->pack(-side => 'left'); die "widget failed $id" if ! defined($awidget); $widgets{$id} = $awidget; ... # closing the loops