my @aktionen=( [qr/(kx[0-9]{6})/i, '/wo/es/hin/soll/A/'], [qr/(kx[0-9]{5})/i, '/wo/es/hin/soll/B/'], [qr/(kx[0-9]{4})/i, '/wo/es/hin/soll/C/'], [qr/(^00[0-9]{4}\D)/, '/wo/es/hin/soll/D/'], [qr/(\D00[0-9]{4}\D)/, '/wo/es/hin/soll/E/'], [qr/((\D|^)\d{1,6}\D)/, '/wo/es/hin/soll/F/'], ); my $quelle='/wo/die/dateien/sind/'; my @file_names; # ... for my $fname (@file_names) { for my $paar (@aktionen) { my ($regex,$ziel)=@$paar; if($fname =~ $regex) { verschiebe($fname, $quelle, $ziel); last; } } } # -------------------------------------------------- sub verschiebe { my ($file,$quelle,$ziel)=@_; File::Copy::move($quelle.$file,$ziel.$file); }