use strict; use warnings; use XML::Twig; my $file1 = shift @ARGV; # erste Datei ist als erstes Argument angegeben my @files = glob '*.xml'; # lese alle xml-Dateien im Verzeichnis @files = grep { $_ ne $file1 } @files if defined $file1; # entferne $file1 aus Datei-Liste, wenn $file1 definiert ist 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($file); # korrigiert; da hier wahrscheinlich die Dateien geparst werden sollen, die in @files stehen; da ist $file1 falsch! } close $FhResult;