use strict; use Data::Dump qw[ pp ]; my %records; until(eof(DATA)){ chomp(my $snoRNA = ); push @{$records{$snoRNA}},{} ; my $seqs = 1; my $line = ; if( $line =~ m[(\d+) different hits] ) { $seqs = $1; chomp( $records{ $snoRNA }[ -1 ]{ exon } = ); } else { chomp( $records{ $snoRNA }[ -1 ]{ exon } = $line ); } chomp( $records{ $snoRNA }[ -1 ]{ GeneID } = ); chomp( $records{ $snoRNA }[ -1 ]{ NM_ID } = ); for( 1 .. $seqs ) { chomp( my $query = ); scalar (); chomp( my $sbjct = ); push @{ $records{ $snoRNA }[ -1 ]{ seqs } }, { $query => $sbjct }; } chomp( $records{ $snoRNA }[ -1 ]{ gene_name } = ); chomp( $records{ $snoRNA }[ -1 ]{ web_link } = ); } pp \%records; __DATA__ snoRNA 25, 26 and 27 2 GI:142387131 NM_006299.3 Query 2 CCTGGAGTCGAGT 14 ||||||||||||| Sbjct 371 CCTGGAGTCGAGT 359 Homo sapiens zinc finger protein 193 (ZNF193), mRNA. http://www.ncbi.nlm.nih.gov/sites/entrez?cmd=Retrieve&db=nucleotide&dopt=GenBank&RID=UDW41RSS01S&log%24=nuclalign&blast_rank=11&list_uids=142387131 snoRNA 25, 26 and 27 1 NM_001005236.3 GI:256773198 Query 3 CTGGAGTCGAGTGTCT 18 |||||| ||||||||| Sbjct 168 CTGGAGACGAGTGTCT 153 Homo sapiens olfactory receptor, family 1, subfamily L, member 1 (OR1L1), mRNA. http://www.ncbi.nlm.nih.gov/ snoRNA 25, 26 and 27 4 different hits 31 GI:153945877 NM_002458.1 Query 3 CTGGAGTCGAGTG 15 ||||||||||||| Sbjct 6818 CTGGAGTCGAGTG 6806 Query 3 CTGGAGTCGAGTG 15 ||||||||||||| Sbjct 8489 CTGGAGTCGAGTG 8477 Query 3 CTGGAGTCGAGTG 15 ||||||||||||| Sbjct 10589 CTGGAGTCGAGTG 10577 Query 3 CTGGAGTCGAGTG 15 ||||||||||||| Sbjct 12260 CTGGAGTCGAGTG 12248 Homo sapiens mucin 5B, oligomeric mucus/gel-forming (MUC5B), mRNA. http://www.ncbi.nlm.nih.gov/sites/entrez?cmd=Retrieve&db=nucleotide&dopt=GenBank&RID=UDW41RSS01S&log%24=nuclalign&blast_rank=9&list_uids=153945877