2012-07-12 41 views
0

大家好!Perl:测试远程文件是否存在http

我需要测试一个http服务器上的远程文件是否存在,而不下载它。我研究了像wget,curl,axel等各种命令行程序,但找不到测试专用标志。

我在一个生产环境中工作,只对我可以使用的模块有限制。放眼望去,在LWP ::简单 - >头()函数似乎合适的,但返回undef想它的时候:

#!/usr/bin/perl -w 
use strict; 
use LWP::Simple; 

    my $url = 
'http://hgdownload.cse.ucsc.edu/goldenPath/hg18/encodeDCC/wgEncodeUwChIPSeq/wgEncodeUwChIPSeqAlignmentsBjInput.tagAlign.gz'; 

my $head = LWP::Simple->head($url); 
#my $head = head($url); 

print "$head\n"; 

任何指针不胜感激!

谢谢, 托马斯

回答

3

head是导出的函数,而不是一个类的方法。你正在调用它是错误的。

use LWP::Simple qw(head); 

my $url = … 
if (head($url)) { 
    # sucess 
} else { 
    # no success 
} 

# alternatively skip the import, supply fully qualified function name: 
# use LWP::Simple qw(); 
# if (LWP::Simple::head($url)) … 
+0

感谢daxim,解决了这个问题。现在它始终返回false。我也尝试从其他2个网站获取索引页面,但始终是假的。 有关于此的任何想法? – juettemann 2012-07-12 10:06:38

+0

好的,这似乎是代理配置的问题,没有错LWP。 – juettemann 2012-07-12 10:19:47