What are you expecting the value of $error to be when the signal arrives?
Plus, why not simply capture the variable as a closure:
my $error;
sub timeout {
...
if( $error ) ...
...
}
...
$SIG{ALRM} = \&timeout;
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
/div