我有一个脚本如下,它被要求在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...
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它时,我有以下错误,
Can't locate object method "parse" via package "0" (perhaps you forgot to load "0"?) at telephone.pl line 8
Run Code Online (Sandbox Code Playgroud)
我是perl XML :: Bare模块的新手,如果有人能在这个学习曲线中指导我,那将会很棒
显然http://p3rl.org/XML::Bare如果找不到/无法打开文件则返回0.所以处理这个问题的正确方法是:
my $xml = XML::Bare->new(...) or die "Could not open file: $!";
Run Code Online (Sandbox Code Playgroud)
你确定文件都存在吗?
编辑:正如@simbabque建议的那样,我也推荐http://p3rl.org/XML::LibXML