use strict; use warnings; my %Ren2Dol = ( 'rrv193\d{4}cm' => "RNF191", 'rrv194\d{4}cm' => "RNF196", 'rrv195\d{4}cm' => "RNF200", ); while () { chomp; my ($base, $rest) = split /[\.\_]/, $_, 2; my ($match) = grep {$base =~ /$_/} keys %Ren2Dol; if (defined $match) { print "$Ren2Dol{$match}\n"; } else { print "$base\n"; } } __DATA__ rrv1931009cm.new090626 rrv1941009cm.new090626 rrv1951009cm.new090626 rrv1961009cm.new090626 rrv1931234cm.new090626 #### RNF191 RNF196 RNF200 rrv1961009cm RNF191