Ist das als Antwort in einem Thread gedacht, oder soll das ne Frage sein?
Man kann in der widget-Hierarchie mittels $widget->children alle unterwidgets bestimmen und sich dann das auswählen, was man haben will. Alternative ist, daß du Variablen aus nem Hash verwendest, damit hast du dann zumindestens nur eine globale Variable.
sollte das deine Frage nicht beantworten, mußt du sie nochmal genauer stellen.
edit: mist - war zu langsam ;)\n\n
<!--EDIT|Ishka|1112695566-->
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}