5

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

但是,在我的数据库中,偶尔会出现没有要获取文件的 URL。那么,是否有任何模块可以用来检查我正在尝试执行 file::fetch() 的 URL 中是否存在文件?

我的脚本中有一行

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

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

我得到这个错误,我拼命试图避免,因为还有其他 URL 主要包含要获取的文件。

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

如何格式化我的正则表达式以检查文件,或者是否有我可以使用的模块来促进这一点?

合法的 URL 如下所示

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

1 回答 1

3

File::Fetch 的手册中有这个标志$File::Fetch::WARN,您可以设置它false以消除错误:

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

设置为 false 以使警告静音。手动检查 error() 方法的输出,看看出了什么问题。

默认为真。

于 2012-09-06T09:24:34.857 回答