Hi, I typed:
perl -e '%h = ( q => 2, w => 2 ); print reverse %h = reverse %h'
and wonder why I get three values back 'w22' I expect 'q2' or 'w2' at perls option. More testing shows even more wired results. In the example below, I expect %x reversed in %h but it is not. There was not even a 'a' => 2 pair in the original %h.
perl -MData::Dumper -le '%h = (1 => 2, a=>"b", c => 2); %h = reverse ( + %x = reverse %h); print Dumper({x => \%x, h =>\%h});' __OUTPUT__ $VAR1 = { 'x' => { 'b' => 'a', '2' => 'c' }, 'h' => { 'a' => 2, 'c' => 2 } };
Perl 5.8.4 cofuses me even more
perl5.8.4 -MData::Dumper -le '%h = (1 => 2, a=>"b", c => 2); %h = reve +rse ( %x = reverse %h); print Dumper({x => \%x, h =>\%h});' __OUTPUT__ $VAR1 = { 'x' => { 'b' => 'a', '2' => 'c' }, 'h' => { '' => 2 } };
can you explain this behavior please?
UPDATE: I really expect to lose the dupes. My point is that I expect that %h is a reverse of %x. But it is not for me, tested on
Mac OSX and Linux. So I really wonder that you get different output.
Boris

In reply to whats wrong reverse %x = reverse %h? by borisz

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.