@x.sort: {
   my $a = $^x ~~ m:g/\d+/;
   my $b = $^y ~~ m:g/\d+/;
   $a[6].defined cmp $b[6].defined
   ??
     $a[3] cmp $b[3]
   || $a[1] cmp $b[1]
   || $a[2] cmp $b[2]
   || $a[4] cmp $b[4]
   || $a[5] cmp $b[5]
   || $a[6] cmp $b[6]
   || $x cmp $y
   !! $x cmp $y
};

On Fri, Jun 8, 2018 at 11:53 PM ToddAndMargo <toddandma...@zoho.com <mailto:toddandma...@zoho.com>> wrote:

    On 06/08/2018 07:00 PM, Brent Laabs wrote:
     > let me revise that
     >
     > @x.sort: {
     >    my $a = $^a ~~ m:g/\d+/;
     >    my $b = $^b ~~ m:g/\d+/;
     >    $a[6].defined cmp $b[6].defined
     >    ??
     >      $a[3] cmp $b[3]
     >    || $a[1] cmp $b[1]
     >    || $a[2] cmp $b[2]
     >    || $a[4] cmp $b[4]
     >    || $a[5] cmp $b[5]
     >    || $a[6] cmp $b[6]
     >    || $^a cmp $^b
     >    !! $^a cmp $^b
     > };
     >


    $   ls | perl6 -e 'my @x=slurp(); @x.sort: { my $a = $^a ~~ m:g/\d+/;my
    $b = $^b ~~ m:g/\d+/;$a[6].defined cmp $b[6].defined ?? $a[3] cmp $b[3]
    || $a[1] cmp $b[1] || $a[2] cmp $b[2] || $a[4] cmp $b[4]  || $a[5] cmp
    $b[5]  || $a[6] cmp $b[6] || $^a cmp $^b !! $^a cmp $^b a cmp $^b' $^a
    cmp $^b
    ===SORRY!=== Error while compiling -e
    Redeclaration of symbol '$^a' as a placeholder parameter
    at -e:1
    ------> my @x=slurp(); @x.sort: { my $a = $^a⏏ ~~ m:g/\d+/; my $b = $^b
    ~~ m:g/\d+/;$a

On 06/08/2018 09:03 PM, Brandon Allbery wrote:
Brent thinkoed that slightly. (Forgot that first use of a placeholder "declares" it, and thereafter you don't use the ^. Which then collides with the local "my" variables.)



$ ls | perl6 -e 'my @x=slurp(); @x.sort: { my $a = $a ~~ m:g/\d+/; my $b = $b ~~ m:g/\d+/;$a[6].defined cmp $b[6].defined ?? $a[3] cmp $b[3] || $a[1] cmp $b[1] || $a[2] cmp $b[2] || $a[4] cmp $b[4] || $a[5] cmp $b[5] || $a[6] cmp $b[6] || $^a cmp $^b !! $^a cmp $^b a cmp $^b' $^a cmp $^b
===SORRY!=== Error while compiling -e
Cannot use variable $a in declaration to initialize itself
at -e:1
------> my @x=slurp(); @x.sort: { my $a = $⏏a ~~ m:g/\d+/; my $b = $b ~~ m:g/\d+/;$a
    expecting any of:
        term

Reply via email to