* Dr.Ruud <[EMAIL PROTECTED]> [2007-12-02 14:34]:
> John W . Krahn schreef:
> > Eric Krause:
>
> > $ perl -le'
> > $_ = q[11111xxx11xxxx111111xx11x1xxxx];
> > print;
> > s/(1+)/@{[($l=$1)=~y|1|1|]}/g;
> > print;
> > '
> > 11111xxx11xxxx111111xx11x1xxxx
> > 5xxx2xxxx6xx2x1xxxx
> > :-)
>
> Aiaiaiai.
>
> $ perl -le'
> $_ = q[11111xxx11xxxx111111xx11x1xxxx];
> print;
> 1 while s/(\d)(\d)/@{[0==print, $1+$2]}/;
> print;
> '
> 11111xxx11xxxx111111xx11x1xxxx
> 11111xxx11xxxx111111xx11x1xxxx
> 2111xxx11xxxx111111xx11x1xxxx
> 311xxx11xxxx111111xx11x1xxxx
> 41xxx11xxxx111111xx11x1xxxx
> 5xxx11xxxx111111xx11x1xxxx
> 5xxx 2xxxx111111xx11x1xxxx
> 5xxx 2xxxx 21111xx11x1xxxx
> 5xxx 2xxxx 3111xx11x1xxxx
> 5xxx 2xxxx 411xx11x1xxxx
> 5xxx 2xxxx 51xx11x1xxxx
> 5xxx 2xxxx 6xx11x1xxxx
> 5xxx 2xxxx 6xx 2x1xxxx
As this is a beginner's list I'll dare ask the question.
Can someone please help me understand why this works or better still point me
to some documentation where I can read more and get my teeth into this kind of
thing!
I thought I was pretty good at regular expressions but this creation of what
seems a nameless hash in the replacement side of the regular expression is
something I've never seen before, both John and Affijn do this @{ [ ] }
anonymous array of hash which isn't because inside the [ ] you have a function ?
Thanks in advance,
Jerry
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/