As SirClive already mentioned, $a and $b are globals (so that sort can work easily), and thus not subject to strict vars.

This works in practice, but leaves the bitter taste of design smell in your mouth.

In Perl 6 there is instead a very simple way to declare formal parameters to a block, you can write

@array.sort: { 2 * $^a <=> $^b }

Here the twigil ^ declares the variables as formal parameters to the block. So by writing two extra characters in the typical sort block you get rid of this smelly exception.

Since these parameters are filled in lexicographic order of their names, @array.sort: { $^b <=> $^a } sorts in reverse, just as it would do (with slightly different syntax) in Perl 5.

Perl 6 - links to (nearly) everything that is Perl 6.

In reply to Re: use strict Question? by moritz
in thread use strict Question? 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.