waswas-fng hit the nail on the head I believe, seeing hashes iterate in a seemingly random order, I can only assume that you actually SORT your keys into some kind of order, whence you can find the last key alphanumerically, am I right?

In which case, liz's answer is a good one, because depending on the order of the sort, you can always find not only the last key, but the last one alphanumerically, or the first one, if your sort is ascending instead.

Liz's answer is even the more useful if you're looking for the 'last' out of several hashes. In the real-life example Im giving below, I created two hashes labelled 'atoms' and 'protons'. Their keys are the actual line numbers from a flat file, where each atom/proton had it's own line.

Hence by iterating the line numbers themselves(extracted here from a 'residue'), I can get the true last atom/line of a residue.

foreach my $ref (sort keys %{$self->{'residues'}{'1'}}){ $last=$self->{'atoms'}{$ref} if defined $self->{'atoms'}{$ref}; $last=$self->{'protons'}{$ref} if defined $self->{'protons'}{$ref} +; }
Cheers
Sam

In reply to Re: Last Element of Hash by seaver
in thread Last Element of Hash by Anonymous Monk

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.