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 <not....@gmail.com> 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 > <perl6-us...@perl.org <mailto:perl6-us...@perl.org>> 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? >> [#] > >>