我有一个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