thanks very much atcroft , many ideas in your program, which will help.
while searching in http://groups.google.com/group/comp.lang.perl.tk
i have found that we can draw the screen gradually, ie dot by dot with animation by inserting the line
$mw->update;
after
${$img}->put( q{BLUE},
-to => ( $image_w_2 + $p{x}, $image_h_2 + $p{y} ) )
if ( $numbers$i );
so we can enjoy watching the process of drawing.