Assuming you are using a modern build of Perl you can replace the duplicate skipping code with:

$sum{$key}{reason} //= $reason;

Note too that you should not use an editor that inserts tabs. They really screw up indenting when you use a different editor or render the file in almost any way except with the original editor.

Also, take note of the indentation style of the code you are working with and try to match it. Code gets really nasty to work with if it contains a mixture of different indentation styles. You should think about what you consider to be important elements of code formatting and develop a style you can use consistently. Unless you have a really good reason to go some other way, the majority of the Perl world seems to use K&R, inherited no doubt from the *nix C world, so you should base your style on that.

Perl Tidy is an excellent Perl "pretty printer". I strongly recommend that you install and use it, especially to clean code up before pushing it into your revision control system, or before publishing it anywhere (like on PerlMonks).

Perl is the programming world's equivalent of English

In reply to Re^5: Best way to store/sum multiple-field records? by GrandFather
in thread Best way to store/sum multiple-field records? by bobdabuilda

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.