The bound to be a simple explanation for this phenomena, but if there is, I cannot see it?

I was trying to use my uniq() utility routine, which has seen service in it's present form for months, if not years, and it suddenly stopped working. It gave no visible errors or warnings, it simply failed to do anything.

After scratching my head most of last night, I gave up. Today, I realised that the key to the failure was the fact that I was

  • chaining it with sort.
  • and that I was using the implicit default comparator block.

    What am I doing wrong?

    #! perl -slw use strict; sub uniq { my %x; @x{@_} = (); keys %x } my @array = ( 'A' .. 'Z', reverse 'A' .. 'Z' ); ## Explicit sort block works as expected print sort { $a cmp $b } uniq @array; ## implicit sort block "disables"!? the uniq() sub? print sort uniq @array; __DATA__ P:\test>junk ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZZYXWVUTSRQPONMLKJIHGFEDCBA

    Examine what is said, not who speaks.
    Silence betokens consent.
    Love the truth but pardon error.

    In reply to implicit sort disables a chained subroutine? by BrowserUk

    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.