Как заменить $ в строке в Perl-скрипте - PullRequest
0 голосов
/ 15 июля 2011

У меня есть строка, $ str = abc # $ и @ def

Я попытался заменить '$' на его шестнадцатеричное значение, используя

$ = ~ ул с / $ /% 26 / г

Но вывод abc #.

Это может быть потому, что '$' считается концом строки или строки.

Пожалуйста, дайте мне знать

Ответы [ 3 ]

6 голосов
/ 15 июля 2011

Ваша проблема не имеет ничего общего с вашей заменой;когда вы присваиваете строку в первую очередь:

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

$and и @def обрабатываются как переменные для интерполяции.

Вам необходимо экранировать символы или использовать одиночныекавычки (которые не интерполируют переменные):

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

И вам действительно нужно включить предупреждения, которые сказали бы, что ваше назначение было проблемой.

4 голосов
/ 15 июля 2011

Вам нужно сбежать $ с \

$str =~ s/\$/%26/g
1 голос
/ 15 июля 2011

Попробуйте экранировать $ с помощью \:

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

Рон

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...