【发布时间】:2014-06-27 16:11:07
【问题描述】:
我正在为这个问题寻找合适的 perl-ism。我可以解决它,但只需要问...
我正在使用 HTML::TreeBuilder 并且正在使用 look_down 方法。这将根据上下文返回一个数组或标量,如果没有找到匹配的标签,则返回 undef。很酷。
我想做以下事情:
foreach my $tag ( @{ $head->look_down('_tag', 'link') } ) {
...
}
但如果没有link 标记,该函数将返回undef 并生成错误Can't use an undefined value as an ARRAY reference at myCGI.cgi line ###。所以我尝试了这个修改:
foreach my $tag ( @{ $head->look_down('_tag', 'link') || [] } ) {
...
}
我的想法是,如果该方法返回undef,那么它将变成一个空数组。这在没有 link 标签时有效。但是,如果至少有一个预期标签,则会出现错误:Not an ARRAY reference at myCGI.cgi line ###。
我是否需要硬着头皮将方法调用从循环中中断并在进入循环之前检查undef?
【问题讨论】:
标签: perl