Perl 代码引用相同扩展名的多个文件 (.xml)

Perl 代码引用相同扩展名的多个文件 (.xml)

我正在尝试解析多个 xml 文件,但我有点卡住了。下面的脚本部分$twig->parsefile("output_1.xml"); 可以很好地解析所述文件。但是,我想解析目录中的所有 .xml 文件。我尝试将每个文件写入代码中,如下所示:

$twig->parsefile("output_1.xml" "output_2.xml" "output_3.xml");

我也尝试过使用通配符,就像在 bash 中一样:

$twig->parsefile("*.xml");

但这些尝试都不起作用。如何更改脚本以便脚本解析目录中的所有 .xml 文件?我为我缺乏知识而道歉,我才刚刚开始使用 Perl。

#!/bin/perl -w

use strict;
use XML::Twig;

my $twig = XML::Twig->new(
   twig_handlers => {item => \&acct}
);
$twig->parsefile("output_1.xml");                              

sub acct {
    my ($t, $elt) = @_;

          for my $tag (qw(itemId title viewItemURL convertedCurrentPrice)) {
                    print $elt->field($tag), "\n";
                        }
                            print "\n";
                            print "\n";
                            }

答案1

您可以按如下方式枚举目录内容:

my @files = <*.xml>;    # or: my @files = </your/path/to/*.xml>;
foreach my $file (@files) {
    $twig->parsefile($file);
}

相关内容