#!/usr/local/bin/perl use strict; use warnings; use Data::Dumper; my %hash; local $/ = ">"; ; #Skip first ">" while(){ my ($key,$value) = split /\n/, $_ , 2; $key =~ s/(\S+).*?$/$1/; $value =~ s/\n\>?//g; $hash{$key} = $value; } print Dumper \%hash; __DATA__ >EP11110 (-) TGCAATCACTAGCAAGCTCTC GCTGCCGTCACTAGCCTGTGG >EP40005 (+) GGGGCTAGGGTTAGTTCTGGA NNNNNNNNNNNNNNNNNNNNN __OUTPUT__ $VAR1 = { 'EP40005' => 'GGGGCTAGGGTTAGTTCTGGANNNNNNNNNNNNNNNNNNNNN', 'EP11110' => 'TGCAATCACTAGCAAGCTCTCGCTGCCGTCACTAGCCTGTGG' };