for my $name ( keys %files ) { [b]my $stern = '*';[/b] # sortiere die "zählkürzel" absteigend. Das "höchste" wird in # $keep gespeichert, der Rest in @delete my ($keep,@delete) = sort{ $b cmp $a }keys %{ $files{$name} }; # setze den Dateinamen wieder zusammen und speichere es in @keep push @keep, "$name$keep$stern.txt"; # für jedes andere Zählkürzel wird der Dateiname zusammengesetzt und # in @to_delete gespeichert. push @to_delete, map{ "$name$_$stern.txt" }@delete; } foreach $file (@to_delete) { unlink ($file) or die "Can't delete $file - $!"; }