我有一個Perl腳本,我試圖讓它打印出$ article的值,當它出錯時。該腳本看起來像:Perl錯誤捕獲變量
eval{
for my $article($output =~ m/<value lang_id="">(.*?)<\/value>/g)
{
$article =~ s/ /+/g;
$agent->get("someurl");
$agent->follow_link(url_regex => qr/(?i:pdf)/);
my $pdf_data = $agent->content;
open my $ofh, '>:raw', "$article.pdf"
or die "Could not write: $!";
print {$ofh} $pdf_data;
close $ofh;
sleep 10;
}
};
if([email protected]){
print "error: ...: [email protected]\n";
}
因此,如果沒有.pdf文件代碼發送一個錯誤,這是我想要的。但是我需要知道的是,它有可能獲得導致錯誤的$ article的名稱?我試圖使用某種全局變量而沒有運氣。
出於某種原因,當我這樣做,它打印每一個PDF不只是那些等於從for循環 – chrstahl89 2012-01-18 20:34:26
ITYM'打印STDERR「錯誤處理文章$文章:$ @ \ n」 $文章;'(不'$!')。你可以使用'warn'而不是'print STDERR'。但總的來說,這應該是工作;如果它不適用於@ chrstahl89,則問題可能在eval內。 – 2012-01-18 20:58:56
@ chrstahl89:你能發佈「打印每個PDF」的實際代碼嗎? – 2012-01-18 21:04:32