One way is to put in a subroutine to create the inner hash for you. If you prefer to have everything located inside the map, thats easy using an anonymous sub:
my %hash = map {$_ => { sub { key1 => $_[0], key2 => alter($_[0]) }->('longstring'.$_.'more') } } @list;
To answer your original question, in short: no. Before its initialized there is nothing there to use.

Basically you assign a list to the hash, and that list has to be constructed before it can be assigned, and its while you are constructing this list that you want to use one of its earlier elements to create a later one. Using a sub, you can create the element in question first(when providing the arguments to the sub call), and then create the list.


In reply to Re: Is it possible to use key/values of a Hash/Hash ref while it's being initialized? by goldclaw
in thread Is it possible to use key/values of a Hash/Hash ref while it's being initialized? by shiza

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.