Perl TimeOut

Problem

You have a script which runs too long and you want to time it out, after a given number
of seconds.



Solution

Useful bit of code to time-out a section of your Perl script, via the alarm function.

See the example tab.



Example



#!/usr/bin/perl

eval {

   local %SIG;
   $SIG{ALRM}=
     sub{ die "timeout reached, after 20 seconds!n"; };
   alarm 20;
   print "sleeping for 60 secondsn";
   sleep 60; # This is where to put your code, between the alarms
   alarm 0;
};

alarm 0;

if($@) { print "Error: [email protected]"; }

exit(0);

__END__

View screen shot demo of perl timeout

view screen shot of perl timeout demo



Reference

[tags]Perl timeout, Perl Coding School[/tags]



Comment (1)

  1. relin

    This can generate zombies ….

    like if we put a

    system (” ping hostname ” );

    the ping will be still running …

Leave a Reply

Your email address will not be published. Required fields are marked *