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.


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller