in reply to When a regexp with /g needs to be run .. twice

Hello talexb,

From the end of perlop#Regexp-Quote-Like-Operators:

Occasionally, you can't use just a /g to get all the changes to occur that you might want. Here are two common cases:

# put commas in the right places in an integer 1 while s/(\d)(\d\d\d)(?!\d)/$1,$2/g; # expand tabs to 8-column spacing 1 while s/\t+/' ' x (length($&)*8 - length($`)%8)/e;

(Note that the /g modifier in the first example isn’t actually needed.) You can adapt this approach to your requirements:

my $foo = ':{,"'; 1 while $foo =~ s/([:,{])(?! )(.)/$1 $2/; print ">$foo<\n";

Output:

19:22 >perl 1872_SoPW.pl >: { , "< 19:22 >

Hope that’s of interest,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,