You're reentering perl unsafely. Rather than have the signal handler try to update the window, have it set some kind of variable, and then test/act on that in an idle task.
(See Tk::Widget
$widget->idletasks).
jdporter
The 6th Rule of Perl Club is -- There is no Rule #6.