Hi Todd, first, please don't mix up the && Boolean operator and infix &, an *all* junction operator.
Also consider the difference between the following code snippets: > my$x="abcd"; if $x.contains(not "e") {say "y"}else{say "n"}; n > my$x="abcd"; if $x.contains(none "e") {say "y"}else{say "n"}; y Or between these: > my$x="abcd"; if $x.contains("b" & (not "d")) {say "y"}else{say "n"}; n > my$x="abcd"; if $x.contains("b" & (none "e")) {say "y"}else{say "n"}; y HTH, Laurent. Le mer. 19 déc. 2018 à 08:57, ToddAndMargo via perl6-users < perl6-us...@perl.org> a écrit : > >> On Tue, Dec 18, 2018 at 10:49 PM ToddAndMargo via perl6-users > >> <perl6-us...@perl.org <mailto:perl6-us...@perl.org>> wrote: > >> > >> Hi All, > >> > >> Where is my booboo? > >> > >> $ p6 'my$x="abcd"; if $x.contains("b" && not "q") {say "y"}else{say > >> "n"};' > >> > >> n > >> > >> > >> In the mean time, I will ue > >> if $x.contains("b") && not $x.contains( "q" ) > >> > >> > >> Many thanks, > >> -T > > On 12/18/18 4:13 PM, Ralph Mellor wrote: > > .contains tests whether its invocant, treated as a string, contains its > > argument, treated as a string. > > > > The argument you've given to .contains is: > > > > "b" && not "q". > > > > That's not a string. > > > > Here's one option: > > > > my$x="abcd"; if $x.contains("b") && not $x.contains("q") {say > > "y"}else{say "n"}; > > > > Hi Ralph, > > That was my work around. > > The reason I asked the question was the following: > > $ p6 'my$x="abcd"; if $x.contains("b" & "d") {say "y"}else{say "n"};' > y > > $ p6 'my$x="abcd"; if $x.contains("b" & "e") {say "y"}else{say "n"};' > n > > So it seemed to me that the following should also work, which > it does not: > > Should be "y" > $ p6 'my$x="abcd"; if $x.contains("b" & not "e") {say "y"}else{say "n"};' > n > > Should be "n" and it is > $ p6 'my$x="abcd"; if $x.contains("b" & not "d") {say "y"}else{say "n"};' > n > > > I think maybe I am pushing the limits. Perl has 101 way of > doing everything. It think I am pushing 102. > > -T >