while ( my $header = <$fh> ) { my $sequence = <$fh>; chomp ( $header, $sequence ); $data{$header} = $sequence; # or push @{ $data{header} }, $sequence; # to read print "$_ -> $data{$_}.\n" for sort keys %data; # or for the hash of arrays for my $key ( sort keys %data ) { print "$key : $_.\n" for @ { $data{$key} }; }