Обратите внимание, я вполне уверен, что понимаю вопрос. Если вы хотите оставить исходную строку без изменений, вам нужно создать новую переменную.
$newstring = $someString ;
$newstring =~ s/how do/this is how/;
Обратите внимание, что оператор =~
не =
сложение Думаю, теперь я вижу, что вы хотите - возвращать измененную строку, а не изменять переменную. Будет способ сделать это в Perl 5.14, но в настоящее время я не знаю, как это сделать. См. Используйте флаг подстановки / r для работы с копией в The Effective Perler .
Обновление
Функциональность s/ / /r
уже давно выпущена в Perl. Вы можете сделать
use 5.14.0 ;
my $someString = "how do you do this";
say ($someString =~ s/how do/this is how/r) ;