Re: What should /\08/ match and do?
[email protected] (Abigail)
| Newsgroups | perl.perl5.porters |
|---|---|
| Message-ID | <20100603163447.GJ12847@almanda> |
On Thu, Jun 03, 2010 at 10:02:43AM -0600, karl williamson wrote:
> I'm still digesting what people have written. But I
>
> What I'm hearing is that it's not ok to add warnings on long-standing
> possible usages that don't make sense at least to the person proposing
> the message, such as me with empty {}, and Ãvar with the single
> character sub names. FWIW, I think that it's a mistake to not warn on
> using a reserved term; I don't think that putting it into the docs alone
> suffices. And there would be more unhappy people when the construct
> they were using suddenly goes away than there would be to get a
> deprecation warning in advance that they are using a reserved term.
>
> But that's what I'm hearing. But, Abigail originally said that it was
> ok for \08 to warn; and Nicholas agreed; but then I hear in the latest
> post on the subject from Abigail that "I'd say that pointing this
> potential problem out in the docs should be enough."
I made that remark regarding to the more general concatenation problem:
$a = '(.)\1';
$p = qr /${a}1/; # Equivalent to /(.)\011/
I do not think this should warn - it's not warning now, and, IMO, it's
uncommon enough to not introduce a new warning. [*]
The warning on use of \18 already exists - regardless whether the \18
appears as is, or comes from a concatenation [+]. The only change I suggested
was the wording of the warning (as the '8' isn't ignored).
> I can go either
> way. The patch I had prepared simply silenced the warning; I can add
> text to the documents, perhaps using his sly examples, as Yves
> suggested. And I think it is a good idea to change them to stress using
> \g{} for backreferences.
>
> But I'm not sure we have consensus.
[*] Unless one can manage to have a very accurate detection - that is,
concatenating a variable whose value ends in \\[0-7] with something
that starts with [0-7]. My worry for new warnings for existing constructs
is always false positives.
[+] Although, when using C<< $a = '\1'; /${a}8/ >> Perl will warn, but
is likely to do what the programmer intends. Eliminating that case
would be nice.
Abigail