my @rows; my @newrows; my @printrows; my %newhash; @{%newhash->{$value}}; $rows[0] = "IP"; $newrows[0] = "value1"; $newrows[1] = "value2"; push (@{%newhash->{$rows[0]}}, @newrows); push (@{%newhash->{$rows[0]}}, @newrows); print "\n"; foreach $key (sort keys %newhash) { print "key: $key\n"; @printrows = %newhash->{$key}; print $printrows[0][0]; # should be Value1? print $printrows[1][1]; # should be Value2? print "\n"; } #### [ @row ]