my %rects; my %ovals; for my $num(1..10){ $rects{$num}{'object'} = $canvas->createRect( ...... -tags => [$num , 'rect' ] ); $rects{$num}{'num'} = $num; $rects{$num}{'mydata2'} = "some array or HoA" $rects{$num}{'object'}->bind('Enter',sub{ print "$num\n" }); } for my $num(1..10){ $ovals{$num}{'object'} = $canvas->createOval( ...... -tags => [$num , 'oval' ] ); $ovals{$num}{'num'} = $num; $ovals{$num}{'mydata2'} = "some array or HoA" }