+ -
当前位置:首页 → 问答吧 → 半夜三更发帖:这个子函数有问题吗?为神马会die掉?

半夜三更发帖:这个子函数有问题吗?为神马会die掉?

时间:2010-11-02

来源:互联网

Perl code

#!usr/bin/perl -w
use strict;
use 5.010;
use LWP::UserAgent;

my ($workfile, $workdir) = @ARGV;
mkdir $workdir;
open RENWU, $workfile;
@renwus = <RENWU>;
chomp @renwus;
close RENWU;

open LOG ,">$workfile.log";
select((select(LOG), $| = 1)[0]);

sub mirror10times {
    my ($url, $filename)  = @_;
    my $ua = LWP::UserAgent->new;
         $ua->agent('Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.503.0 Safari/534.6');
         $ua->timeout(20);
    my $tmp;
    for (my $times = 1;$times <= 10;$times ++){
        $tmp = $ua->mirror ($url, $filename);
        if ($tmp->code == 200){
            say LOG "$url\t$times\tDONE:-)";
            say "$url\t$times\tDONE:-)";
            last;
        }
        else{
            sleep ($times * 2);
            if ($times == 10){
                say LOG "$url\t\t\tFAIL:-(";
                say "$url\t$times\t\tFAIL:-(";
            }
        }
    }
    sleep 1;
}



这个子函数,有时会die掉。整个程序都死掉了。
提示 500 EOF chunk 什么的 。
如何修改这个子函数,让它不要挂掉,碰到有问题的跳过就可以了。
谢谢各位。

作者: justqb   发布时间: 2010-11-02

该回复于2010-11-02 10:20:53被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#2楼 得分:0回复于:2010-11-02 11:02:59
如果是LWP的die的话;我估计你要重新定义捕获的信号 %SIG

作者: iambic   发布时间: 2010-11-02