while (my $file = ) { $file =~ /(\d+)(lc|pp)/i or next; my $posA = uc "$1$2-"; # $file =~ /(sh|lic)/i or next; # my $posB = uc $1; $file =~ /(800|2621|3524|6509|7206)(s-|r-)/i or next; my $dv = uc "$1$2"; $file =~ /([a-z]+)(\d+)/i or next; my $loc = uc "$1$2"; print "$posA" or die; # print "$posB" or die; print "$dv" or die; print "$loc" or die; print "\n"; } __DATA__ 1lc-2621s-RT02-9FL 2pp-3524-7FL PP_800c_-RT1-TX 10lc-7206-3FL-SW02 LC-6509r-SW1