in reply to foreach loop running too many times...?

Match the values you want with a regex

#!perl use strict; my @tpr = qw( AC0001_F00001_S00011.tpr AC0001_F00002_S00012.tpr AC0001_F00003_S00013.tpr AC0002_F00001_S00021.tpr AC0002_F00002_S00022.tpr AC0002_F00003_S00023.tpr AC0003_F00001_S00031.tpr AC0003_F00002_S00032.tpr AC0003_F00003_S00033.tpr); foreach (@tpr) { if (/(\w{2})(\d{4})_F(\d{5})_S(\d{5})/){ my $id = "AC"; my $molec = $2; my $frame = $3; my $mdstep = $4; # molecule 1 to 2 and frame 1 to 2 if ( ($molec =~ /000[12]/) && ($frame =~ /0000[12]/) ){ print "$_\n"; } } } # end of loop through tpr files
poj