我有一个脚本如下,
它被要求在foreach
循环内部进行。
该脚本如下,
use XML::Bare;
foreach my $i (1..100){
my $xml=XML::Bare->new(
file=>"/tmp/lcms$i.xml"
);
my %root=%{ $xml->parse() };
#..do something with %root...
}
当我尝试运行它时,我有以下错误,
Can't locate object method "parse" via package "0" (perhaps you forgot to load "0"?) at telephone.pl line 8
我对perl XML :: Bare模块相对较新,如果有人能在这条学习曲线中指引我,那将会很棒
答案 0 :(得分:5)
如果找不到/无法打开文件,显然http://p3rl.org/XML::Bare会返回0。 所以处理这个问题的正确方法是:
my $xml = XML::Bare->new(...) or die "Could not open file: $!";
你确定这些文件都存在吗?
编辑:正如@simbabque建议的那样,我还建议http://p3rl.org/XML::LibXML