while (<>) { my ($path, $start, $end, $delay) = split; # or however you get them push @{ $db_hash{$path} }, { START => $start, END => $end, DELAY => $delay, }; }