sub somefunction{ # somehow incorporate an alarm or a loop # to run a "return" or "goto END" ....... if ( $shared_flag ==1 ){ return } #or if( $shared_flag == 1 ){ goto END } ...... ...... END: } #### sub somefunction{ local $SIG{ALRM} = sub { goto END }; alarm 10; # wait 10 seconds before interrupting while (1){sleep} END: }