Inside of a regex `{…}` will just run some regular Raku code. Code inside of it will most likely have no effect on what the regex matches.
What you should have written was: $<sol> = "@W[3]" The thing you were thinking of was: $<sol> = <{ @W[3] }> Which could have been written as: <sol={ @W[3] }> --- To have the result of regular Raku code have an effect on the match, it has to have <…> around it 'TrueFalse' ~~ / <{ Bool.pick }> / I think it is better if you use "…" if you are just interpolating a variable, because that is something you might do outside of a regex as well. --- The reason your code matched is that an empty regex always matches. 'abc' ~~ / "" / 'abc' ~~ / {} / 'abc' ~~ / {'def'} / # still an empty regex as far as the regex engine is concerned On Sat, Jun 13, 2020 at 5:35 AM Richard Hainsworth <rnhainswo...@gmail.com> wrote: > I was playing with a regex and array interpolation. > > From the documentation I thought the following comparisons would be the > same, but they are not. > > What am I missing? > > my @W = <perl weekly challenge with some extra things>;my $S = > 'perlchallengeextrathingswithweeklysome' ; # randomly concatenate the words > without spacessay 'yes' if $S ~~ / $<sol>=( { @W[3] } ) /;say $<sol>;my $sol > = @W[3]; # withsay 'yes' if $S ~~ / $<sol>=( $sol ) /;say $<sol>; > > <response> > yes > 「」 > yes > 「with」 > > > > >