in reply to Re^2: [Solved] Printing a 2D array into constant-sized columns
in thread [Solved] Printing a 2D array into constant-sized columns

An AoA is an array of arrays. But in fact your structure is more complicated, it is an array containing a reference to an array of arrays (so it is really an AoAoA). I can't be sure of what you intended to do, but I would guess that you really wanted this:
my @accounts = ( [ current => 1000 ], [ savings => 2000 ], [ other => 500 ], );
instead of this:
my @accounts = [ [ current => 1000 ], [ savings => 2000 ], [ other => 500 ], ];
The difference, if you don't see it, is in the round surrounding parens, versus square surrounding brackets. The first one (an AoA) looks like this:
0 ARRAY(0x80359d38) 0 ARRAY(0x80355ce8) 0 'current' 1 1000 1 ARRAY(0x80359d50) 0 'savings' 1 2000 2 ARRAY(0x803fe470) 0 'other' 1 500
and the second one is clearly more complicated, as it has one more level of nesting:
0 ARRAY(0x80359d38) 0 ARRAY(0x80356108) 0 ARRAY(0x80360410) 0 'current' 1 1000 1 ARRAY(0x80359c18) 0 'savings' 1 2000 2 ARRAY(0x80359bd0) 0 'other' 1 500
Ah, and yes, by all means, learn to use sprintf and printf, they are really useful as soon as you need to format output.

Replies are listed 'Best First'.
Re^4: [Solved] Printing a 2D array into constant-sized columns
by mascip (Pilgrim) on Apr 03, 2014 at 15:14 UTC
    Oh, my mistake really, I meant
    @accounts = (
    Thanks a lot for your help, I've learned to use printf() thanks to you. It was much simpler than I thought it would be, and it is very flexible. Excellent!
      You are welcome.