Careful :-) You're actually closing the single quote you​started with perl6 -e. In other words, this is your Shell's doing.
You can execute this as a script with single quote around string literals with no issues Streetcars On May 3, 2017 10:27, "ToddAndMargo" <toddandma...@zoho.com> wrote: > Hi All, > > Why does this work > > $ perl6 -e 'my $x="abcdef"; if $x.contains( "abc" ) { say "yes" } else { > say "no" };' > yes > > > And this does not? > > $ perl6 -e 'my $x="abcdef"; if $x.contains( 'abc' ) { say "yes" } else { > say "no" };' > ===SORRY!=== Error while compiling -e > Undeclared routine: > abc used at line 1. Did you mean 'abs'? > > Why can I not use 'abc' and must use "abc"? > > > Many thanks, > -T > > > -- > ~~~~~~~~~~~~~~~~~~~~~~~~ > Yesterday it worked. > Today it is not working. > Windows is like that. > ~~~~~~~~~~~~~~~~~~~~~~~~ >