Re: $/ not always set after a regex match?

[email protected] (Vadim Belman)
Newsgroups perl.perl6.users
Message-ID <[email protected]>
There are little known operators `andthen`, `orelse`, `notandthen` (I always forget about the latter one too). What you are looking for would be:

given $s { m/ $<word>=\w+ / andthen .<word>.say }

Or, if you want a named variable:

given ("aaa") { (my $m = m/$<word>=\w+/) andthen $m.<word>.say }

Best regards,
Vadim Belman

> On Jan 2, 2023, at 5:07 PM, yary <[email protected]> wrote:
> 
> I like statement modifiers, though not so much using side-effect variables set by a postfix modifier, I'd like to see the side effect before seeing the variable it sets. Something like
> 
> / .+ <?before ly> / && put "The root of $_ is $/.";
> 
> though the discussion is about not setting $/ in the caller's context and I'm not sure how to rewrite it with the matching operation first and passing the match result to a named variable and also skipping if no match, all in a single statement.
> 
> -y
> 
> 
> On Sat, Dec 31, 2022 at 8:10 PM William Michels via perl6-users <[email protected] <mailto:[email protected]>> wrote:
>> RESENDING: The code examples below should read `<?before ...>` in all cases, not `<before ...>`, although either works (erroneously?).
>> 
>> -------------------
>> 
>> Interested in answering the question:
>> 
>> WHICH CODE EXAMPLE IS THE PRETTIEST?
>> 
>> Vote for your favorite (or post your own):
>> 
>> [#] > #REPL (line numbers altered to differentiate)
>> Nil
>> [0] > $_ = 'gracefully'
>> gracefully
>> [1a] > put "The root of $_ is $/." if / .+ <?before ly> /;
>> The root of gracefully is graceful.
>> [1b] > put "The root of $_ is $<>." if / .+ <?before ly> /;
>> The root of gracefully is graceful.
>> [1c] > print "The root of $_ is " andthen put $/ ~ '.' if / .+ <?before ly> /;
>> The root of gracefully is graceful.
>> [1d] > print "The root of $_ is " andthen put $<> ~ '.' if / .+ <?before ly> /;
>> The root of gracefully is graceful.
>> [1] >
>> [2a] > put "Or is the root of $_ $/?" if / .+ <?before full> /;
>> Or is the root of gracefully grace?
>> [2b] > put "Or is the root of $_ $<>?" if / .+ <?before full> /;
>> Or is the root of gracefully grace?
>> [2c] > print "Or is the root of $_ " andthen put $/ ~ '?' if / .+ <?before full> /;
>> Or is the root of gracefully grace?
>> [2d] > print "Or is the root of $_ " andthen put $<> ~ '?' if / .+ <?before full> /;
>> Or is the root of gracefully grace?
>> [#] >
>>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.