for my $line (@array) { my ($key, $value1, $value2); $value2 = undef; ($key, $value1, $value2) = (split(/\s+/, $line))[0,4,7]; #push @{$hash{$key}}, [$value1, $value2]; }