foreach (@new_line) { print $_, "\n"; my @ju = split ,@new_line; $self->{code}{$ju[0]} = { event => $ju[1], month => $ju[2], am => $ju[3], pm => $ju[4], } } print Dumper $self->{code}; } Output: $VAR1 = { 'MN739' => { 'am' => '3.98', 'event' => 'U710', 'month' => 'Jul', 'pm' => '1.83' }, 'RF858' => { 'event' => 'U888', 'am' => '7.22', 'pm' => '4.20', 'month' => 'Dec' }, 'VS524' => { 'month' => 'Aug', 'pm' => '1.78', 'am' => '5.22', 'event' => 'U14' }, 'BD110' => { 'event' => 'U804', 'am' => '0.04', 'pm' => '9.71', 'month' => 'Jul' }, 'OA322' => { 'month' => 'Jul', 'pm' => '9.23', 'am' => '9.93', 'event' => 'U19' } };