my %files; read_files(\%files,'dir1'); read_files(\%files,'dir2'); my @sorted=map{$_->[0]}sort{$a->[1] <=> $b->[1]}map{[$_,(/(\d+)/)]}keys(%files); for my $file (@sorted) { my @paths=map{$_.'/'.$file}@{$files{$file}}; # mach was mit den Pfaden print "FILES: ".join(' , ',@paths); } sub read_files { my $files=shift; my $dir=shift; opendir(my $dh, $dir) or die("error opedir $dir ($!)\n"); while(my $file=readdir($dh)) { next unless($file=~/\d+\.txt/); push(@{$files->{$file}},$dir1); } closedir($dh); }