$SIG{'USR1'} = sub { $flag = 1; }; eval { local $SIG{'USR1'} = sub { die "Timeout\n"; }; DoWork(); };