Perl File :: Fetch失败,因为URL没有文件部分

时间:2012-09-06 08:59:42

标签: perl download

我正在运行一个脚本,该脚本从数据库中提取URL并执行file :: fetch()。根据我的理解,file :: fetch()仅在要下载的URL中存在文件时才有效。

但是,在我的数据库中,偶尔会有一个URL,其中没有要提取的文件。那么,是否有任何模块可用于检查URL中是否有文件我试图执行文件:: fetch()?

我的剧本中有一行

my $uri_handle = File::Fetch->new(uri => $url);

其中$ url可能类似于http://asiaone.com而没有实际提取的文件。

我收到此错误,我拼命想避免,因为还有其他网址主要包含要提取的文件。

Use of uninitialized value $path in pattern match (m//) at C:/Perl/lib/File/Spec/Unix.pm line 267.
Use of uninitialized value in string eq at C:/Perl/lib/File/Fetch.pm line 395.
Hostname required when fetching from 'http' at C:\test\multihashtest2.pl line 100 thread 2

如何格式化我的正则表达式以检查文件,或者是否有可用于促进此操作的模块?

合法网址如下所示

http://the.earth.li/~sgtatham/putty/latest/x86/puttytel.exe

1 个答案:

答案 0 :(得分:3)

manual of File::Fetch,有一个标记$File::Fetch::WARN,您可以将其设置为false以消除错误:

  

此变量控制内部遇到的错误   File :: Fetch应该是carp'd还是。

     

设置为false以消除警告。检查错误的输出()   方法手动查看出了什么问题。

     

默认为true。