5

データベースからURLを取得し、file :: fetch()を実行するスクリプトを実行しています。私の理解では、file :: fetch()は、ダウンロードするURLに実際にファイルがある場合にのみ機能します。

ただし、私のデータベースには、フェッチするファイルがないURLがときどきあります。それで、file :: fetch()を実行しようとしているURLにファイルがあることを確認するために使用できるモジュールはありますか?

スクリプトに行があります

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

http://asiaone.comここで、$ urlは、実際にフェッチされるファイルがないようなものである可能性があります。

そして、このエラーが発生します。これは、フェッチするファイルがほとんど含まれている他の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 :: WARNfalseがあります。これは、エラーを消すために設定できます。

この変数は、File::Fetchによって内部的に発生したエラーをカープするかどうかを制御します。

警告を消すにはfalseに設定します。error()メソッドの出力を手動で調べて、何がうまくいかなかったかを確認します。

デフォルトはtrueです。

于 2012-09-06T09:24:34.857 に答える