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

Min*_*ini -1 perl

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

我尝试用它的十六进制值替换'$',

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

但输出是abc#.

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

请告诉我

yst*_*sth 6

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

$str = "abc#$and@def";
Run Code Online (Sandbox Code Playgroud)

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

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

$str = 'abc#$and@def';
# or
$str = "abc#\$and\@def";
Run Code Online (Sandbox Code Playgroud)

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