[Moscow.pm] \1 better written as $1 at
Dmitry Karpich
meettya на gmail.com
Вс Май 22 07:16:25 PDT 2011
Программирование на Perl, 3-е издание. стр. 194
s/version ([0-9.]+)/the $Names($1) release/g
В строке замены $1 возвращает то, что захватила первая (и единственная) пара скобок. (Можно также указать \1, как в шаблоне, но такое использование в замене считается предосудительным. В обычной строке, заключенной в двойные кавычки, \1 означает <Ctrl>+<A>.)
Так что помнится вам что-то странное.
Вот Фридла сейчас не найду, но он [кажется] тоже каленым железом был готов метить тех, кто писал \1 в части замены.
Так что можно, но общественность осуждает :)
On May 22, 2011, at 2:03 AM, Nick Knutov wrote:
> Спасибо, не догадался так посмотреть, помогло.
>
> Да, когда-нибудь надо будет поправить )
>
> btw, мне почему-то помнится, что $1 вместо \1 можно было делать не всегда и, более того, делать так было раньше нельзя. С какой версии перла это изменилось?
>
>
> On 22.05.2011 3:54, Dmitry Karpich wrote:
>>> perl -wE 'use diagnostics;$a="true"; $a =~ s/(ru)/FFF\1/; say $a'
>>> \1 better written as $1 at -e line 1 (#1)
>>> (W syntax) Outside of patterns, backreferences live on as variables.
>>> The use of backslashes is grandfathered on the right-hand side of a
>>> substitution, but stylistically it's better to use the variable form
>>> because other Perl programmers will expect it, and it works better if
>>> there are more than 9 backreferences.
>>
>> Отключить, как diagnostics пишет, можно через syntax.
>>
>> Но, честно говоря, лучше прислушайтесь к интерпретатору, он дело говорит :)
>> Да и отключать ВСЮ категорию - это как себе в ногу выстрелить. Намаетесь
>> потом ловить странные косяки.
>>
>> Митяй.
>>
>> On May 22, 2011, at 1:30 AM, Nick Knutov wrote:
>>
>>> Коллеги, подскажите пожалуйста,
>>>
>>> чтобы отключить вывод сообщений вида "\1 better written as $1 at"
>>>
>>> no warnings (что) ?
>>>
>>> Нагуглить категорию не получается, в документации к perllexwarn тоже
>>> ничего.
>>>
>>> --
>>> Best Regards,
>>> Nick Knutov
>>> http://knutov.com
>>> ICQ: 272873706
>>> Voice: +7-904-84-23-130
>>> --
>>> Moscow.pm mailing list
>>> moscow-pm на pm.org | http://moscow.pm.org
>>
>>
>>
>
> --
> Best Regards,
> Nick Knutov
> http://knutov.com
> ICQ: 272873706
> Voice: +7-904-84-23-130
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20110522/83a5cdae/attachment-0001.html>
Подробная информация о списке рассылки Moscow-pm