http://qs321.pair.com?node_id=800985


in reply to matrix - creating total row/column

Hi,

From how I understood your question, you want to get the total for each columns... So, I replaced this code
for my $to (sort keys %from_to_bytes){ printf "%10s", "$from_to_bytes{$to}"; }
with this one.
my %total_col; for my $i (keys %from_to_bytes) { for my $j (keys %{ $from_to_bytes{$i} }) { $total_col{$j} += $from_to_bytes{$i}->{$j}; } } print " " x 11; for my $i (sort keys %total_col) { printf " %10s", "$total_col{$i}"; } print "\n";
Although as you can see there is some more work needed in the formatting. Hope this helps.

Replies are listed 'Best First'.
Re^2: matrix - creating total row/column
by GertMT (Hermit) on Oct 15, 2009 at 21:45 UTC

    this worked out very nice. Thank you very much. A bit puzzled though..

    I understand that for my $i (keys %from_to_bytes) {should be read as: for all members of the family (Fred, Wilma and so on).

    However I remain in trouble reading the remaining two lines:

    for my $j (keys %{ $from_to_bytes{$i} }) { $total_col{$j} += $from_to_bytes{$i}->{$j};
    It works but I'd like to understand as well.

    Using hashes maybe efficient, learning how to use them takes some time for me.

    Gert