"Chas. Owens" schreef:
> On Thu, Apr 10, 2008 at 9:25 PM, Keenlearner <[EMAIL PROTECTED]> wrote:
>> Hello, I have had been programming in PHP for a while, new to perl.
I
>> got a perl code bug where it will go to infinite loop. So is there a
>> maximum execution time that I could set in perl just like in PHP ?
>> Thanks
> snip
>
> You can set an signal to go off after X seconds with the alarm*
> function:
>
> #!/usr/bin/perl
>
> use strict;
> use warnings;
>
> my $timeout = 5*60; #timeout after five minutes
>
> eval {
> local $SIG{ALRM} = sub { die "timeout\n" };
> alarm $timeout;
> #stuff you want to run in under five minutes
> };
> die unless $@ eq "timeout\n" if $@;
>
> * http://perldoc.perl.org/functions/alarm.html
Playful:
$ perl -Mstrict -wle'
$SIG{ALRM} = sub { die "died"; };
alarm(3);
sleep(1);
eval {
$@ and printf q{%s: $@<%s>%s}, __LINE__, $@, "\n";
local $SIG{ALRM} = sub { die "died" };
my $old_alarm = alarm(3);
$old_alarm and print "old_alarm: $old_alarm sec\n";
sleep(2);
alarm($old_alarm);
1;
} or do {
alarm(0);
$@ and printf q{%s: $@<%s>%s}, __LINE__, $@, "\n";
# die "died";
};
sleep(5);
print "finished";
'
--
Affijn, Ruud
"Gewoon is een tijger."
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/