use warnings; use strict; use Data::Dumper; my @lines = ; my $n; my %all_hash; for (@lines) { chomp; if (/^>/) { $n = $_; } else { push @{ $all_hash{ $n } }, $_; } } print Dumper(\%all_hash); __DATA__ >seq1 ASDFGHASDFGHJ ERTYUIOOIUYLK NBGFEWERTY >seq2 BGTNHYMJUKOPK MNBFSDFGHJ