http://www.perlmonks.org?node_id=991414


in reply to Keyed matrix

What do you mean by "matrix"? There is no object in Perl (at least in the core modules) called "matrix". See perldata.

What you actually need is a hash of arrays. Hashes can contain only (possibly blessed) scalar values, so you cannot just put arrays in the hash. Instead, need to create array references and put them in a hash. See perlreftut for more information on this. For example,

my %hash = ( one => [ 1, 2, 3, ], two => [ 4, 5, 6, 7, ], three => [ 8, ], ); print ((join "\t", (sort keys %hash)),"\n"); my $i = 0; my $defined; do { $defined = 0; map {$defined++ if defined $hash{$_}->[$i]} (keys %hash); for (sort keys %hash) { print $hash{$_}->[$i] // " ", "\t"; }; print "\n"; $i++; } while ($defined > 0); __END__ one three two 1 8 4 2 5 3 6 7

Sorry if my advice was wrong.