in reply to Numeric matrix w/ textual row/column labels
If I'm reading you right, you want to access a 2D array using textual indices. Something like this
#! perl -slw use strict; require 5.008; # For use constant %hash syntax. use constant { LONDON => 0, PARIS => 1, TOKYO => 2, NEW_YORK => 3, MILAN => 4, SAN_PAULO => 5, }; use constant { FIRST_QUARTER => 0, SECOND_QUARTER => 1, THIRD_QUARTER => 2, FOURTH_QUARTER => 3, TOTAL => 4, }; my @sales = map{ [ map{ int(rand(10000))/100 } FIRST_QUARTER .. FOURTH_QUARTER ] } LONDON .. SAN_PAULO; for my $city ( LONDON .. SAN_PAULO ) { $sales[ $city ][ TOTAL ] += $sales[ $city ][ $_ ] for FIRST_QUARTE +R .. FOURTH_QUARTER; } print "@{ $sales[ $_ ] }[ FIRST_QUARTER .. TOTAL ]" for LONDON .. SAN_ +PAULO;
The upside is that the constants get translated in-line which is good for efficiency. The downside is that you can't (easily) use them to generate text for display.
|
|---|