You can use q[./] instead of \'./\' (especially useful so that it will work on both Windows and Unix
But in this case it is even better to use -I and -M p6 -I. -MRunNoShell -e '( my $a, my $b ) = RunNoShell::RunNoShell("ls *.pm6"); say $a;' On Sun, Jun 3, 2018 at 4:47 PM, ToddAndMargo <toddandma...@zoho.com> wrote: >>> On Sun, Jun 3, 2018 at 5:28 PM ToddAndMargo <toddandma...@zoho.com >>> <mailto:toddandma...@zoho.com>> wrote: >>> >>> Hi All, >>> >>> What am I doing wrong here? >>> >>> >>> $ p6 'lib \'./\'; use RunNoShell; ( my $a, my $b ) = >>> RunNoShell::RunNoShell("ls *.pm6"); say $a;' >>> >>> bash: syntax error near unexpected token `=' >>> >>> Huh ??? >>> >>> >>> This is RunNoShell.pm6 >>> >>> sub RunNoShell ( $RunString ) is export { >>> ... >>> return ( $ReturnStr, $RtnCode ); >>> } >>> >>> Many thanks, >>> -T > > > On 06/03/2018 02:36 PM, Brandon Allbery wrote: >> >> bash doesn't like nested single quotes, even with escapes. So the first \' >> gave you a literal backslash and ended the quoted part, then the second \' >> gave you a literal ' and continued without quoting. The final ' would then >> open a new quoted string, but bash doesn't get that far because it sees the >> (now unquoted) parentheses and tries to parse them as a command expansion. >> >> allbery@pyanfar ~/Downloads $ echo 'x\'y\'z' >> > ^C >> >> Note that it thinks it's still in a quoted string and wants me to >> continue. >> > > p6 does not like `lib ./`, meaning use the current directory > without the single quotes. Any work around?