0

次のプログラムがありますが、何らかの理由でエラーが発生し、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);  
  } 

エラー

File does not exist: y:/dir/subdir/procedure.xml at sample.pl line 20
4

1 に答える 1

2

バッククォートには出力に改行 ( \n) が含まれるため、配列の内容には@findxmlsすべて改行が含まれます。スクリプトを次のいずれかに変更します

chomp( @findxmls= `find -name $findxml -maxdepth 4` );

また

foreach my $output (@findxmls) {   
    chomp( $output );
    ...
}
于 2012-06-25T18:36:28.173 に答える