如何在perl脚本中替换字符串中的$

时间:2011-07-15 04:19:31

标签: perl

我有一个字符串, $ str = abc#$和@ def

我尝试使用

将'$'替换为十六进制值

$ STR =〜S / $ / 26%/克

但输出是abc#。

这可能是因为'$'被视为行或字符串的结尾。

请告诉我

3 个答案:

答案 0 :(得分:6)

你的问题与你的替代无关;当您首先分配给字符串时:

$str = "abc#$and@def";

$and@def被视为要插值的变量。

您需要转义符号或使用单引号(不插入变量):

$str = 'abc#$and@def';
# or
$str = "abc#\$and\@def";

你真的需要启用警告,这会告诉你你的任务就是问题。

答案 1 :(得分:4)

您需要使用$

转义\
$str =~ s/\$/%26/g

答案 2 :(得分:1)

尝试使用\:

转义$
$str =~ s/\$/%26/g;

罗恩