Определение одной строковой переменной из другой путем подстановки? - PullRequest
3 голосов
/ 21 октября 2011

Мне иногда нужны две строковые переменные, где значение второй переменной выводится из первой путем замены символов.

Есть ли более краткий способ сделать это, чем показано ниже? Принятие двух отдельных команд для определения второго var из первого является подверженным ошибкам и громоздким:

# Example: "pstopdf" and "ps2pdf":
my $name1 = "pstopdf";
my $name2 = $name1;
$name2 =~ s/to/2/;   

Ответы [ 2 ]

6 голосов
/ 21 октября 2011
(my $name2 = $name1) =~ s/to/2/;
4 голосов
/ 21 октября 2011

Одной из новых функций в Perl 5.14 является неразрушающее замещение с флагом / r: s /// r , которое пригодится, если вы делаете такойпреобразование в map, например.

Используя флаг /r, вы напишите

my $name2 = $name1 =~ s/to/2/r;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...