Trying to puzzle out what the heck is meant by %{{ }} = LIST, I did

$ perl -MO=Deparse -e'print join( "|", %{{ }} = (1)x100 );' print join('|', %{{};} = (1) x 100); -e syntax OK $ perl -e'print join( "|", %{{};} = (1)x100 );' syntax error at -e line 1, near "%{{};" Unmatched right curly bracket at -e line 1, at end of line Execution of -e aborted due to compilation errors. $
That looks like a borderline syntax error, since perl parses the code to something just as weird, but differently. Or maybe it's an O::Deparse problem.

The behavior you noted goes away if all the hash key slots are different:

$ perl -we'print join( "|", %{{ }} = 1..100 );' 1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|2 +7|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|5 +0|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|7 +3|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|9 +6|97|98|99|100$ $ perl -we'print join( "|", %{{ }} = (1,1,2,1,3,1,4,1,5,1) );' 1|1|2|1|3|1|4|1|5|1$
Warnings are on, so the weirdness would show noisily.

After Compline,
Zaxo


In reply to Double Erm? by Zaxo
in thread Erm? Bug or not? Weird behaviour in hash / list conversion by BrowserUk

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.