我有一个以下程序,但由于某种原因它抛出错误而不解析xml文件。
my @findxmls;
foreach my $searchxml(keys %xmlhash) {
@findxmls= `find -name $findxml -maxdepth 4`;
print Dumper (@findxmls);
到目前为止工作正常。它打印出带有路径的所有xml文件。
example of output
y:\dir\subdir\procedure.xml
y:\dir\otherdir\java.xml
但是如果我尝试解析它就不起作用
foreach my $output (@findxmls) {
my $parsexml = new XML::Simple;
my $xmldata = $parser->XMLin($output );
print Dumper ($xmldata);
}
ERROR
File does not exist: y:/dir/subdir/procedure.xml at sample.pl line 20
答案 0 :(得分:2)
反引号在输出中包含换行符(\n
),因此@findxmls
数组的内容都有换行符。将脚本更改为
chomp( @findxmls= `find -name $findxml -maxdepth 4` );
或
foreach my $output (@findxmls) {
chomp( $output );
...
}