my %big_ash; my @keys; while() { my @fields = split /--+/, $_; next unless @fields; if($. == 1) { #first line @keys = @fields; next; } my %nr; @nr{@keys} = @fields; $big_ash{$nr{NR}} = \%nr; } print "$big_ash{14}{Dates}\n"; __DATA__ NR------E-mail----------Comment---------Dates-------------Age--Action_date 12------Tom@info.com----blablabla-------AM0,PM0,AM1,PM1---32---10-10-2001 13------Frank@info.com--blablabla-------AM0,PM0-----------45---10-10-2001 14------Sand@info.com---blablabla-------AM1,PM1,PM2-------47---10-10-2001 14------Sand@info.com---blablabla-------AM1,PM1,PM2-------47---12-10-2001 #### $nr{Dates} = [split ',', $nr{Dates};