$/="//\n"; while(<>) { if($_=~/^ID:(.*)/m) { $id=$1; $seq=$hash_f{$id}; @AoA=(); while($_=~/^HIT:(.*?)\tSCORE:[\d\.]+\tEVALUE:[\d\.\-\w]+\tHMM_START:\d+\tHMM_END:\d+\tSEQ_START:(\d+)\tSEQ_END:(\d+)/mg) { $pfam_name=$1; $seq_start=$2; $seq_end=$3; push @AoA, [ $pfam_name, $seq_start, $seq_end ]; } } print $id."\n"; for $i ( 0 .. $#AoA ) { print "$i\t [ @{$AoA[$i]} ],\n"; } } $/="\n";