#!/usr/bin/perl use strict; use warnings; open(FH,"input.txt")or die "can not open input file\n"; for(my $i=1;$i<=15;$i++){ open(OUT,">output_$i.txt") or die "can not create new files\n"; my $pattern=sprintf '%05s',$i; $pattern="S".$pattern."GM"; my $c=0;my $search; while(my $line=){ my($one,$two,$three,$four,$five,$six,$seven)=split("\t",$line); if($four=~m/(S\d+GM)/){ $search=$1; $search=~s/\s+//g; } if($search=~m/$pattern/){ print OUT "$line"; $c++; } } if($c==0){ print OUT "NO HITS\n"; } $pattern=();$search=(); }