use File::Copy; my home_dir = getcwd . "/files"; opendir (my $DIR, $home_dir) or die "Error: couldn't open dir $home_dir: $!\n"; FILE: while (my $file = "$home_dir/" . readdir($DIR) ) { # ueberspringe verzeichnisse, links, ... nur wirkliche dateien nicht next FILE unless -f $file; # ersetze das erste vorkommen von 2005 durch 2006 (my $newFile = $oldFile) =~ s/2005/2006/; # versuche zu kopieren copy($oldFile, $newFile) or die "Error: couldn't copy '$oldFile' => '$newFile': $!\n"; } # while closedir $DIR;