You didn't use what I sent. It's $^x and $^y, not $a and $b.

(Aside: I *really* wish placeholders didn't work that way; this thread is
demonstrating why it's a bad idea. Not to mention a pain in the butt.)


On Sat, Jun 9, 2018 at 12:12 AM ToddAndMargo <toddandma...@zoho.com> wrote:

> >>> @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
>


-- 
brandon s allbery kf8nh                               sine nomine associates
allber...@gmail.com                                  ballb...@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net

Reply via email to