use strict; use warnings; use XML::Twig; my @files = glob '*.xml'; my $file1 = shift @files; my $FileResult = 'result.txt'; open( my $FhResult, '>', $FileResult )or die ("Unable to open file $FileResult\n$!"); my $twig1= XML::Twig->new( twig_handlers => { 'Parameter' => sub { my $attr_name = $_->{'att'}->{'name'} // 'fault'; print $FhResult $attr_name . ","; }, }, ); print $FhResult( (split('_', $file1,2))[0] . ',' ); $twig1->parsefile($file1); for my $file (@files) { my $twig1 = XML::Twig->new( twig_handlers => { 'Parameter' => sub { my $attr_value = $_->{'att'}->{'value'} // 'fault'; print $FhResult $attr_value . ","; }, }, ); print $FhResult ( split( '_', "\n$file", 2 ) )[0] . ','; $twig1->parsefile($file1); } close $FhResult;