Perl: проверить, существует ли удаленный файл http

Здравствуйте все!

Мне нужно проверить, существует ли удаленный файл на сервере http, не загружая его. Я изучал различные программы командной строки, такие как wget, curl, axel, но не смог найти флаг только для тестирования.

Я работаю в производственной среде, и у меня есть ограничения только для модулей, с которыми я могу работать. Осмотревшись, функция LWP::Simple->head() кажется подходящей, но при попытке возвращает 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";

Любые указатели очень ценятся!

Спасибо Томас

1 ответ

Решение

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)) …
Другие вопросы по тегам