Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl, работа с регулярными выражениями / 5 сообщений из 5, страница 1 из 1
08.08.2012, 12:47:47
    #37908651
publexus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, работа с регулярными выражениями
Как в Perl получить результат регулярного выражения не меняя самой переменной в которой находится обрабатываемый текст?

Например, сейчас я делаю так:
Код: php
1.
2.
3.
4.
my $src = "Apple, grape";

my $result = $src;
$result =~ s/Apple/Orange/g;



А можно ли сразу присвоить переменной $result результат, при этом не меняя $src?
Типа нерабочего варианта:
Код: php
1.
my $result = ($src =~ s/Apple/Orange/g);
...
Рейтинг: 0 / 0
08.08.2012, 15:36:23
    #37909093
Anjey aka PM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, работа с регулярными выражениями
Скобки, как я понимаю, расставить по другому уже не догадались.

Код: php
1.
(my $result = $src) =~ s/Apple/Orange/g;
...
Рейтинг: 0 / 0
08.08.2012, 17:23:31
    #37909314
publexus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, работа с регулярными выражениями
Anjey aka PM,

А как не присвоить, а именно получить результат? Например когда его нужно использовать в выражении, типа:
Код: php
1.
print "Modified string=".($src =~ s/Apple/Orange/g);
...
Рейтинг: 0 / 0
08.08.2012, 17:29:53
    #37909325
Anjey aka PM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, работа с регулярными выражениями
In perl 5.14.0 or later, you can use the new /r non-destructive substitution modifier:

Код: php
1.
my $new = $old =~ s/foo/bar/r; 



Есть 5.14 ? Если нету, то без бубна никак.

Код: php
1.
print "Modified string=".($src =~ s/Apple/Orange/gr);
...
Рейтинг: 0 / 0
09.08.2012, 09:27:17
    #37909942
publexus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, работа с регулярными выражениями
Anjey aka PM,

Да, у меня 5.14.2.

Спасибо за помощь.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl, работа с регулярными выражениями / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]