[我正在尝试构建一个脚本,以处理joomla文章中的JSON数据,但我不知道如何处理来自decode_json()函数的失败返回值。
这是我试图用来从本文中提取“ urls” JSON数据的代码
my @rv = ();
while (my $ref = $sth->fetchrow_hashref()) {
print "urls: $ref->{'urls'}\n";
my $decoded_urls = decode_json($ref->{'urls'}) or next;
my $url = $decoded_urls->{'urla'};
if ($url ne 0) {
push @rv, $ref;
}
}
这将打印以下内容
urls: {"urla":"http://www.MimeStar.com/html/press_rel.htm","urlatext":"</i>Posted by: <a href="mailto:[email protected]">Benjamin D.</a>","targeta":"1","urlb":false,"urlbtext":"","targetb":"","urlc":false,"urlctext":"","targetc":""}
然后窒息,而不仅仅是前进到下一篇文章
, or } expected while parsing object/hash, at character offset 89 (before "mailto:ben@example...") at ./find-remote-links.pl line 271.
发生错误时如何使程序前进至下一行(而不是终止)?
为了期望,使用eval BLOCK
。
eval BLOCK