in reply to Can you assign to pos() in a s/foo/bar/g

possible if:
s/(__|\G)[A-Z]_/$1/g

Oha

Replies are listed 'Best First'.
Re^2: Can you assign to pos() in a s/foo/bar/g
by johngg (Canon) on Oct 25, 2007 at 18:23 UTC
    Ace! That's exactly what I was missing. I had tried \G without success but hadn't thought to put it in an alternation. Adapting your solution to use a look-behind so that I'm not replacing something with itself gives us

    #!/usr/local/bin/perl -l # use strict; use warnings; $_ = q{DFR7234C__A_B_C_Bonzo_Dog_D_B}; print; s{(?:(?<=__)|\G)[A-Z]_}{}g; print;

    which produces the desired

    DFR7234C__A_B_C_Bonzo_Dog_D_B DFR7234C__Bonzo_Dog_D_B

    Your solution doesn't require any messing about with pos() which is a plus, but I am still wondering whether such tinkering is possible.

    Thank you,

    JohnGG