On 15 Oct 2007 at 20:43, Dr.Ruud wrote:
> Jenda Krynicky schreef:
> > Dr.Ruud:
>
> >> [$version =~ s/^(Version:\s*(?:\d+\.)*)(\d+)/$1 . ($2+1)/e;]
> >>
> >> - you are using string evaluation. (read perlretut again)
> >
> > No I'm not. It's a single /e, not double /ee. The stuff inside the
> > matched string is not evaluated as Perl code. Read perlretut again.
>
> It is not about the match, but about the replacement.
>
> <quote source="perlretut">
> A modifier available specifically to search and replace is the "s///e"
> evaluation modifier. "s///e" wraps an "eval{...}" around the replace-
> ment string and the evaluated result is substituted for the matched
> substring.
Exactly. eval{}, not eval"". There is no dangerous string eval in
that code.
Thanks for the \d info, I did not know they were silly enough to
include some additional unicode characters in \d, I expected those to
be only in the [[:IsNumber:]].
It's really sily as there really are characters that match /^\d$/,
yet $char+0 issues a "Argument "..." isn't numeric in addition (+)"
warning. And if I look at the characters that match \d it seems to
include greek letters!
Jenda
===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed
to get drunk and croon as much as they like.
-- Terry Pratchett in Sourcery
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/