XML :: Bare无法通过包“0”找到对象方法“解析”

时间:2017-12-06 11:04:19

标签: xml perl

我有一个脚本如下, 它被要求在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模块相对较新,如果有人能在这条学习曲线中指引我,那将会很棒

1 个答案:

答案 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