Sujet : Re: perl test
De : retroguy (at) *nospam* novabbs.com (Retro Guy)
Groupes : misc.test comp.lang.miscDate : 07. Sep 2024, 13:07:13
Autres entêtes
Organisation : i2pn2 (i2pn.org)
Message-ID : <66f114a9d20bf03cfb305a04d807da6492511772@i2pn2.org>
References : 1 2 3 4 5 6
User-Agent : 40tude_Dialog/2.0.15.41
On Sat, 7 Sep 2024 03:01:14 -0000 (UTC), Peter Dean wrote:
In comp.lang.misc Retro Guy <retroguy@novabbs.com> wrote:
On Fri, 6 Sep 2024 2:14:33 +0000, Lawrence D'Oliveiro wrote:
On Sat, 31 Aug 2024 12:33:39 +0000, Retro Guy wrote:
>
I figured out my Perl issue. =~ s/([\"])/\$1/g; does the trick.
>
If that Perl code does what I think it does, the following Python
equivalent is simpler:
>
«str-expr».replace('"', '""')
The Perl code above escapes quotes, so adds '\' before any "
I know nothing of Python :)
I actually ended up with =~ s/([\$"])/\$1/g; in my final code. I needed
to escape both quotes and '$'
would it hurt to backslash everything nonalphanumeric?
perldoc -f quotemeta
My use case was escaping a set of strings for use in a command line.
Something like:
$arguments = '"' . $tempfile . '" "' . $name . '" "' . $something . '"';
$returnvalue = `/usr/bin/php /path/to/program.php $arguments`;
I needed to escape " and $, but anything else and the '\' would remain,
causing the value of the string to be incorrect when used at the target.
There's probably a better way in Perl than what I did, but I don't know
much about Perl. I do understand regex reasonably well, but not Perl as a
language.