Perlでのタイムアウト

ってことですが、こんなソースでどう?


#! /usr/local/bin/perl
use strict;
use warnings;
$SIG{ALRM} = \&timeout;
alarm 10;
sleep(15);
print "チョwwwオマwwwww\n";
alarm 0;
sub timeout {
print "キタ━━━━━━(゚∀゚)━━━━━━ !!!!! \n";
exit;
}

これを実行すると、、、


% timeout.pl
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
%

sleepを5秒に設定して実行すると、、、


% timeout.pl
チョwwwオマwwwww
%

となります。m(_ _)m

eval使う場合が多いですかね。