You mean something like

print Dumper \@list; $var = ( [ 1,2,3 ], [ 4,5,6 ], [ 1,2,3 ], [ 4,5,6 ], [ 1,2,3 ], );

From which List::MoreUtils::uniq will render

use List::MoreUtils qw[ uniq ];; print for uniq @list;; ARRAY(0x194ac18) ARRAY(0x194ac54) ARRAY(0x194ac90) ARRAY(0x194accc) ARRAY(0x194ad08)

But the required result might be:

ARRAY(0x194ac18) ARRAY(0x194ac54)

With the "naive" solution, any attempt to use the stringified reference (or other stringifed value) in the place of that value, is going to throw up an error immediately. Thereby warning you that either the nature of your data has changed and your solution is no longer good enough, or there is an up-stream error that is giving you bad data. With the module solution, you aren't going to get that error until some point later when it will be much harder to trace back to source.

For simple scalar values, the "naive" solution works fine. And once you start adding non-simple values-- like references--into the mix, it is naive to believe that judging different references to structures containing identical values as distinct, will always be correct. Or even that it would be correct in a preponderance of cases.

For every scenario where the modules result would be more correct, there is another where it would be more wrong.

The point is: you have to know your data, and tailor your solution to that data and the required semantics.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

In reply to Re^5: Module Bloat and the Best Solution by BrowserUk
in thread Module Bloat and the Best Solution by KurtSchwind

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.