哦,是啊,居然犯了这种低级错误。

在 2010年4月1日 下午4:49,silent <[email protected]>写道:

> 是不是因为stat() 把$atime覆盖了?
>
> On Thu, 1 Apr 2010 16:38:24 +0800
> Achilles Xu <[email protected]> wrote:
>
> > 测试代码:
> >
> >
> > use LWP::Simple qw(getstore $ua);
> >
> > my @urls = (
> >             "http://london1.linode.com/100MB-london.bin";,
> >             "http://newark1.linode.com/100MB-newark.bin";,
> >             "http://atlanta1.linode.com/100MB-atlanta.bin";,
> >             "http://dallas1.linode.com/100MB-dallas.bin";,
> >             "http://fremont1.linode.com/100MB-fremont.bin";
> > );
> >
> > my $timeout = 120;
> > $ua->default_header('Range' => 'bytes=0-1000000');
> > for my $url (@urls) {
> >   my ($file) = $url =~ m{/([^/]+)$};
> >   my $atime = time;
> >   eval {
> >     local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n
> > required
> >
> >     alarm $timeout;
> >     my $cmd = "wget $url";
> >     print "downloading $url $file\n";
> >     getstore($url, $file);
> >
> >     alarm 0;
> >   };
> >   my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
> >                       $atime,$mtime,$ctime,$blksize,$blocks)
> >                           = stat($file);
> >   my $btime = time;
> >   print $btime, "\t", $atime, "\n";
> >   print $url, "\t" . ($size/1000/($btime - $atime)) . "\n";
> >   if ($@) {
> >     die unless $@ eq "alarm\n";   # propagate unexpected
> > errors
> >
> >     # timed
> > out
> >
> >   }
> >   else {
> >     #
> > didn't
> >
> >   }
> > }
> >
> > 下载文件会需要几秒,但是几秒过去了,atime和btime是一样的,导致后面报出除0错误。
> >
> > 普通笔记本,联想的,intel t4400。
> >
> > 等会试试Time::HiRes有没有问题。
> >
> > --
> > ---------------------------
> > Achilles Xu
> >
> > --
> > 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
> > 要向此网上论坛发帖,请发送电子邮件至 [email protected]。
> > 要取消订阅此网上论坛,请发送电子邮件至 
> > [email protected]<perlchina%[email protected]>
> 。
> > 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
> >
>
>
> --
> ---
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 [email protected]。
> 要取消订阅此网上论坛,请发送电子邮件至 
> [email protected]<perlchina%[email protected]>
> 。
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>
>


-- 
---------------------------
Achilles Xu

-- 
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 [email protected]。
要取消订阅此网上论坛,请发送电子邮件至 [email protected]。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

回复