Você pode enumerar o conteúdo do diretório da seguinte forma:
my @files = <*.xml>; # or: my @files = </your/path/to/*.xml>;
foreach my $file (@files) {
$twig->parsefile($file);
}
Estou tentando analisar vários arquivos xml, mas estou um pouco preso a alguma coisa. A seção $twig->parsefile("output_1.xml");
do script abaixo funciona bem ao analisar o arquivo declarado. No entanto, gostaria de analisar todos os arquivos .xml no direcotry. Eu tentei escrever cada arquivo no código da seguinte forma:
$twig->parsefile("output_1.xml" "output_2.xml" "output_3.xml");
E eu também tentei usar um curinga como eu faria no bash assim:
$twig->parsefile("*.xml");
Mas nenhuma dessas tentativas funciona. Como posso alterar o script para que todos os arquivos .xml no diretório sejam analisados pelo script? Peço desculpas por minha falta de conhecimento, apenas comecei a usar o 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";
}