On 29 Oct 2022, at 23:28, ToddAndMargo via perl6-users <perl6-us...@perl.org> 
wrote:


On 29 Oct 2022, at 22:02, ToddAndMargo via perl6-users <perl6-us...@perl.org> 
wrote:

Hi All,

I am trying to change

     /

into

     \\\

This works:


$ echo "a/b/c/d" | raku -ne 'my $x=$_; $x~~s:g|$(Q[/])|\\\\\\|;print $x ~ "\n"'
a\\\b\\\c\\\d


But this does not:

$ echo "a/b/c/d" | raku -ne 'my $x=$_; $x~~s:g|$(Q[/])|Q[\\\]|;print $x ~ "\n"'
aQ[\]bQ[\]cQ[\]d


How do I put a literal string in the
target of a regex?

Many thanks,
-T

On 10/29/22 13:07, Elizabeth Mattijsen wrote:
$ echo "a/b/c/d" | raku -ne 'say .subst("/", Q/\\\/, :g)'


Hi Elizabeth,

Thank you for the subst workaround!

Do you also know how to do a literal string in
the target of the regex?

-T

On 10/29/22 14:48, Elizabeth Mattijsen wrote:
> / 'literal string in target' /
>

I am not following.  ;-(

[0] > my $x="a/b/c/d"; $x~~s:g|$(Q[/])|'\\\'|; print $x ~ "\n"
a'\'b'\'c'\'d

[0] > my $x="a/b/c/d"; $x~~s:g|$(Q[/])|/\\\/|; print $x ~ "\n"
a/\/b/\/c/\/d

[0] > my $x="a/b/c/d"; $x~~s:g|$(Q[/])|/'\\\/'|; print $x ~ "\n"
a/'\/'b/'\/'c/'\/'d

[0] > my $x="a/b/c/d"; $x~~s:g|$(Q[/])|/'\\\'/|; print $x ~ "\n"
a/'\'/b/'\'/c/'\'/d

[0] > my $x="a/b/c/d"; $x~~s:g|$(Q[/])|\\\|; print $x ~ "\n"
===SORRY!=== Error while compiling:
Malformed replacement part; couldn't find final |
at line 2
------> <BOL>⏏<EOL>
    expecting any of:
        postfix





Reply via email to