You are not understanding how hashes work. Your code creates a hash, but assigns the value 'ALEX' to the key 'ABBIGAIL'. When you move ALEX earlier in the hash, you also put him in the 'odd' posiiton, so ALEX bacame a key, assigned the value 'ABBE',

Data::Dumper is very useful in this regaerd:

use Data::Dumper; my %WORD = ('AALIYAH', 'AARON', 'ABBE' , 'ABBEY', 'ABBI', 'ABBIE', 'ABBIGAIL', 'A +LEX'); print "FIRST HASH:\n"; print Dumper(\%WORD); my %WORD = ('AALIYAH', 'AARON', 'ALEX', 'ABBE', 'ABBEY', 'ABBI', 'ABBI +E', 'ABBIGAIL'); print "SECOND HASH:\n"; print Dumper(\%WORD);

produces:

FIRST HASH: $VAR1 = { 'ABBI' => 'ABBIE', 'ABBIGAIL' => 'ALEX', 'AALIYAH' => 'AARON', 'ABBE' => 'ABBEY' }; SECOND HASH: $VAR1 = { 'ALEX' => 'ABBE', 'AALIYAH' => 'AARON', 'ABBEY' => 'ABBI', 'ABBIE' => 'ABBIGAIL' };

Also, note that the keys to the hash are not in alphabetical order. They are in an order picked by perl, which you cannot count on.

If you need to operate on has keys sorted alphabeitcally, you need to sort them yourself, for example:

for ( sort keys %WORD ) { print "$_: $WORD{$_}\n" }

some or all code untested.

--Bob Niederman, http://bob-n.com

In reply to Re: Exists in HASH issue by bobn
in thread Exists in HASH issue by wsee

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.