[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