johngg has asked for the wisdom of the Perl Monks concerning the following question:
#!/usr/local/bin/perl -l # use strict; use warnings; $_ = q{DFR7234C__A_B_C_Bonzo_Dog_D_B}; print; 1 while s { (?<=__) [A-Z]_ } {}x; print; print q{-} x 25; $_ = q{DFR7234C__A_B_C_Bonzo_Dog_D_B}; print; s { (?<=__) [A-Z]_ (?{ print pos(); pos() = 0; print pos() }) } {}gx; print; print q{-} x 25;
Here's the output
DFR7234C__A_B_C_Bonzo_Dog_D_B DFR7234C__Bonzo_Dog_D_B ------------------------- DFR7234C__A_B_C_Bonzo_Dog_D_B 12 0 DFR7234C__B_C_Bonzo_Dog_D_B -------------------------
As you can see, it doesn't look as if matching is reset so only one substitution is done. Am I trying to do something impossible here?
Cheers,
JohnGG
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Can you assign to pos() in a s/foo/bar/g
by oha (Friar) on Oct 25, 2007 at 12:14 UTC | |
by johngg (Canon) on Oct 25, 2007 at 18:23 UTC | |
|
Re: Can you assign to pos() in a s/foo/bar/g
by mwah (Hermit) on Oct 25, 2007 at 12:48 UTC | |
by johngg (Canon) on Oct 25, 2007 at 19:06 UTC | |
by Jaikov (Initiate) on Feb 25, 2010 at 12:53 UTC | |
by johngg (Canon) on Feb 25, 2010 at 14:39 UTC | |
by Jaikov (Initiate) on Feb 25, 2010 at 23:21 UTC |