You could apply the same technique:

my @array = map { LISTS => [ map [], 1..$length ] }, 1..$arr_len;


P.S.: when you play with this, you'll sooner or later encounter curious things like this:

my @array = map { 'foo' => $_ }, 1..3; # ok my @array = map { $_ => 'foo' }, 1..3; # not ok: 'syntax error at . +.., near "},"'

This is because Perl has to guess whether the {...} is an anonymous hash or a block (remember, map supports both map EXPR, LIST and map BLOCK LIST syntax).  In order to be sure what is meant, Perl would have to look ahead up until after the corresponding closing curly to see if there's a comma or not, which would disambiguate the interpretation. Perl doesn't do this, because the closing curly could potentially be many lines later... Rather, it expects you to help disambiguate early, like with a unary plus in this case:

my @array = map +{ $_ => 'foo' }, 1..3; # ok

(see map for details)


In reply to Re^3: Newbies question: initializing data structure by almut
in thread Newbies question: initializing data structure by roibrodo

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.