Why don't you use quotemeta()?
> Behalf Of [EMAIL PROTECTED]
>
>
> Hello,
>
> I'm a new Perl user, developing a Perl script that uses regular
> expressions
> to resolve environment variables as it parses through a text file. The
> platform is Unix - Korn shell. I need to escape a number of characters;
> which works fine, except for double backslashes (\\). I cannot get the
> script to properly escape these. Here's the code for my script. (I've
> tried using both straight backslashes as well as setting a string of
> backslashes to the $dbs variable - neither with success.) I'd be much
> appreciated of any seasoned veteran who could provide a tip!
>
> open (in_file, $ARGV[0]) || die "Can't open file $ARGV[0]\n";
> while (<in_file>) {
>
> $dbs='\\\\'; #testing escape \\ option
> my $in_string = $_;
> $in_string =~ s/\$dbs/\\\$dbs/g; #escape \\ testing
> $in_string =~ s/\\/\\\\/g; #escape \
> $in_string =~ s/\//\\\//g; #escape /
> $in_string =~ s/\*/\\\*/g; #escape *
> $in_string =~ s/\(/\\\(/g; #escape (
> $in_string =~ s/\)/\\\)/g; #escape )
> $in_string =~ s/\&/\\\&/g; #escape &
> $in_string =~ s/\|/\\\|/g; #escape |
> $in_string =~ s/\"/\\\"/g; #escape "
> $in_string =~ s/\'/\\\'/g; #escape '
> $in_string =~ s/\$AUTO/\\\$AUTO/g; #escape $AUTO, for output
> files
> print "echoing $in_string\n"; #debug
> my $out_string=`echo $in_string`;
> print $out_string;
>
> }
>
---
You are currently subscribed to perl-win32-users as: [archive@jab.org]
To unsubscribe, forward this message to
[EMAIL PROTECTED]
For non-automated Mailing List support, send email to
[EMAIL PROTECTED]