I guessed this answer. :) It makes it extra typing and some linenoise. So, I wouldn't be really happy about it.
Use of `with` would be less cumbersome, actually. So `with $s ~~ /.../ { .<word> }`. Or `$s ~~ /.../ andthen .<word>`. The "extra typing issue" is not gone in this case, but the code clarity doesn't suffer. Best regards, Vadim Belman > On Dec 30, 2022, at 5:22 AM, Elizabeth Mattijsen <l...@dijkmat.nl> wrote: > > if $s ~~ /$<word>=[\w+]/ -> $/ { say $<word> } > >> On 30 Dec 2022, at 03:54, Vadim Belman <vr...@lflat.org> wrote: >> >> Optimizations, yes... But then, how could we not use code like `if $s ~~ >> /$<word>=[\w+]/ { say $<word> }`? >> >> Speaking of the subject itself, I don't remember how sequences are actually >> implemented in details, but most likely the regex is processed inside the >> sequence iterator which owns the $/ used by the regex eventually. >> >> Best regards, >> Vadim Belman >> >>> On Dec 28, 2022, at 12:49 PM, Elizabeth Mattijsen <l...@dijkmat.nl> wrote: >>> >>> That's because it at one time was decided that smart-match would set $/ in >>> the caller's scope. Which is a pain for implementation and optimizations. >>> I would be very much in favour of getting rid of that "feature", fwiw. >>> >>>> On 28 Dec 2022, at 18:45, Sean McAfee <eef...@gmail.com> wrote: >>>> >>>> But if a sequence has its own $/, why does * ~~ /9/ set $/? >>>> >>>> Actually it's not just sequences, as a little more experimentation showed: >>>> >>>> [0] > first /9/, ^Inf >>>> 9 >>>> [1] > $/ >>>> Nil >>>> [2] > grep /9/, ^10 >>>> (9) >>>> [3] > $/ >>>> Nil >>>> >>>> The * ~~ "trick" sets $/ in these cases too. >>>> >>>> >>>> On Wed, Dec 28, 2022 at 12:01 PM Elizabeth Mattijsen <l...@dijkmat.nl> >>>> wrote: >>>> This isn't specific to the REPL: >>>> >>>> $ raku -e 'say 1 ... /9/; say $/' >>>> (1 2 3 4 5 6 7 8 9) >>>> Nil >>>> >>>> I can only assume that the sequence has its own scope for $/, and thus >>>> isn't visible outside of it. >>>> >>>> >>>> Liz >>>> >>>>> On 28 Dec 2022, at 16:47, Sean McAfee <eef...@gmail.com> wrote: >>>>> >>>>> In a fresh 2022.12 Raku REPL, when the endpoint of a sequence is a Regex, >>>>> the $/ variable seems not to be set: >>>>> >>>>> [0] > 1 ... /9/ >>>>> (1 2 3 4 5 6 7 8 9) >>>>> [1] > $/ >>>>> Nil >>>>> >>>>> If I match more explicitly using a WhateverCode, it works: >>>>> >>>>> [2] > 1 ... * ~~ /9/ >>>>> (1 2 3 4 5 6 7 8 9) >>>>> [3] > $/ >>>>> 「9」 >>>>> >>>>> Is this the intended behavior, or a bug? >>>>> >>>> >>> >> >