2012-09-06 68 views
5

Tôi đang chạy tập lệnh kéo URL từ cơ sở dữ liệu và thực hiện tệp :: fetch(). Từ sự hiểu biết của tôi, file :: fetch() chỉ hoạt động khi thực sự có một tệp trong URL cần tải xuống.Tệp Perl :: Tìm nạp không thành công vì URL không có phần tệp

Tuy nhiên, trong cơ sở dữ liệu của tôi có URL không thường xuyên nơi không có tệp được tìm nạp. Vì vậy, có bất kỳ mô-đun nào tôi có thể sử dụng để kiểm tra xem có tệp nào trong URL tôi đang cố thực hiện tệp :: fetch() không?

Có một dòng trong kịch bản của tôi

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

nơi $ url có thể giống như http://asiaone.com với không có tập tin thực sự được lấy.

Và tôi nhận được lỗi này mà tôi đang cố gắng hết sức để tránh vì có các URL khác chứa hầu hết các tệp để tìm nạp.

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 

Làm cách nào để định dạng biểu thức chính quy để kiểm tra tệp hoặc có mô-đun tôi có thể sử dụng để tạo điều kiện này không?

URL hợp pháp sẽ là một cái gì đó như dưới đây

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

url hợp lệ trông như thế nào? –

Trả lời

3

Từ manual of File::Fetch có cờ này, $File::Fetch::WARN, mà bạn có thể thiết lập để false để bịt miệng các lỗi:

Biến này kiểm soát xem các lỗi có gặp phải trong nội bộ bằng cách Tệp hay không :: Tìm nạp phải được ghép lại hay không.

Đặt thành false thành cảnh báo im lặng. Kiểm tra đầu ra của phương thức error() theo cách thủ công để xem điều gì đã xảy ra.

Mặc định là đúng.

+1

Làm cách nào để áp dụng tùy chọn đó cho sai? –

+1

thử với '$ File :: Fetch :: WARN = 0;' –

+0

Lỗi tương tự vẫn xuất hiện sau khi tôi áp dụng dòng mã đó. Nó chỉ loại bỏ 'Tên máy chủ được yêu cầu khi tìm nạp từ 'http' tại C: \ test \ multihashtest2.pl dòng 100 thread 2' lỗi từ đầu ra. Hai lỗi còn lại cho biết các giá trị chưa được khởi tạo vẫn còn. –

Các vấn đề liên quan