我有一個Perl腳本,可以自動從各種來源下載內容。它在一個eval
塊下載與alarm
,這樣的嘗試將超時,如果時間過長:異常轉義Perl'eval'塊
eval {
alarm(5);
my $res = $ua->request($req);
$status = $res->is_success;
$rawContent = $res->content;
$httpCode = $res->code;
alarm(0);
};
這已經工作多年了,但做了一些系統更新後,一下子就退出加工。相反,它擊中那個時代的時候,我得到以下錯誤的第一來源和程序終止:
Alarm clock
我在做什麼錯誤,導致無法從eval
追趕報警突然?
「有些系統更新」 - 謹慎闡明? – tjd
如果您使用[LWP :: UserAgent](https://metacpan.org/pod/LWP::UserAgent),那麼最好設置'$ ua-> timeout(5)'而不是使用['alarm '](http://perldoc.perl.org/functions/alarm.html) – Borodin
*「這已經運行了多年,但在做了一些系統更新之後,突然它退出了工作」*我認爲@Amias將會對此感興趣 – Borodin