2

是否有任何 perl 模块,如 File::Remote,可通过 http(只读)工作?就像是

$magic_module->open( SCRAPE, "http://somesite.com/");
while(<SCRAPE>)
{
  #do something     
}
4

4 回答 4

5

是的当然。您可以使用LWP::Simple

use LWP::Simple;
my $content = get $url;

不要忘记检查内容是否为空:

die "Can't download $url" unless defined $content;

$content会不会是undef在下载过程中发生了一些错误。

于 2012-06-21T12:48:23.380 回答
3

使用HTTP::Tiny

use HTTP::Tiny qw();
my $response = HTTP::Tiny->new->get('http://example.com/');
if ($response->{success}) {
    print $response->{content};
}
于 2012-06-21T13:22:16.633 回答
3

您也可以使用File::Fetch模块:

File::Fetch
    ->new(uri => 'http://google.com/robots.txt')
    ->fetch(to => \(my $file));
say($file);
于 2012-06-21T13:11:43.850 回答
2

如果您希望统一接口同时处理本地、远程 (HTTP/FTP) 和任何其他文件,请使用IO::Allmodule.

use IO::All;

# reading local
my $handle = io("file.txt");
while(defined(my $line = $handle->getline)){
    print $line
}

# reading remote
$handle = io("http://google.com");
while(defined(my $line = $handle->getline)){
    print $line
}
于 2012-06-21T13:00:14.983 回答