'C': #define X_coord 0 #define Y_coord 1 #define MAX_ROWS 3 /* graph is a 2-d array of ints each row has an X and a Y coordinate Normally graph would be built dynamically as an array of pointer to array. The same [x][y] syntax can be used like in a predefined array. The same [x][y] syntax works in Perl's array of references to arrays also. Although in most cases, I would consider this a "not good thing". */ for (int row =0; row {'X_coord'}; my $this_pointY = $point->{'Y_coord'}; .... } # there can be big advantages to avoiding this # position dependent [$index] stuff as well as the # need to pre-declare those indicies, The Perl AoH # works very well to represent some types of C 2-D arrays. # It is very easy to imagine how an implementer would # go in that direction.