1
我想從WWW :: Mechanize的數據庫中獲取一個xml文件。我知道這個文件相當大(比我的內存大),並且它不斷崩潰,我試圖在瀏覽器中查看它,或嘗試使用get()存儲在文件中。我打算將來使用XML :: Twig,但我無法將結果存儲在文件中。Perl - 機械化對象尺寸太大
有沒有人知道如何在小塊中分割機械化對象,一個接一個地獲取它們,並將它們存儲在一個文件中,一個接一個不會耗盡內存?
以下是查詢api:ArrayExpress Programmatic Access。
謝謝。
#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize;
my $base = 'http://www.ebi.ac.uk/arrayexpress/xml/v2/experiments';
#Parameters
my $query ='?species="homo sapiens"' ;
my $url = $base . $query;
# Create a new mechanize object
my $mech = WWW::Mechanize->new(stack_depth=>0);
# Associate the mechanize object with a URL
$mech->get($url);
#store xml content
my $content = $mech->content;
#open output file for writing
unlink("ArrayExpress_Human_Final.txt");
open($fh, '>>:encoding(UTF-8)','ArrayExpress_Human_Final.txt') || die "Can't open file!\n";
print $fh $content;
close $fh;
謝謝!你的答案真的很有幫助! –