我有一个字符串, $ str = abc#$和@ def
我尝试使用
将'$'替换为十六进制值$ STR =〜S / $ / 26%/克
但输出是abc#。
这可能是因为'$'被视为行或字符串的结尾。
请告诉我
答案 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;
罗恩