while ($line=){ $hit1= $line=~ /^(>data_\d+\s+GENEID_\d+.*\n.*)/s; print OUT1 "$hit1\n"; $hit2= $line=~ /^(>data_\d+\s+PROTID_\d+.*\n.*)/s; print OUT2 "$hit2\n"; } #### $str = "text with some pattern in it"; $c = $str =~ / (some pattern) /; # sets $c to the numeric value "1" @m = $str =~ / (some pattern) /; # assigns "some pattern" as sole element of @m ( $m ) = $str =~ / (some pattern) /; # sets $m to "some pattern"