my $TEXT= do { local $/; <DATA> };
$TEXT =~ /abc/g;
$TEXT =~ s/\G(\D+)([\d\.\-]*)/$1GOVALUE/g;
print $TEXT;
__END__
Some 01.35 numbers 019999 not to 01.055555 replace
abc(" 0.123511, 0.074997, 0.103143, 0.153955, 0.260586",\
" 0.068394, 0.082183, 0.110329, 0.16114
+2, 0.267773",\
" 0.081887, 0.095677, 0.123822, 0.17463
+5, 0.281266",\
" 0.111534, 0.125324, 0.153470, 0.20428
+2, 0.310914",\
" 0.165731, 0.179521, 0.207666, 0.25847
+9, 0.365110");
outputs:
Some 01.35 numbers 019999 not to 01.055555 replace
abc(" GOVALUE, GOVALUE, GOVALUE, GOVALUE, GOVALUE",\
" GOVALUE, GOVALUE, GOVALUE, GOVALUE,
+GOVALUE",\
" GOVALUE, GOVALUE, GOVALUE, GOVALUE,
+GOVALUE",\
" GOVALUE, GOVALUE, GOVALUE, GOVALUE,
+GOVALUE",\
" GOVALUE, GOVALUE, GOVALUE, GOVALUE,
+GOVALUE");
GOVALUE
The final GOVALUE is because it matches an empty string.
Update: When I copy your code, I get a stealth trailing hyphen in the pattern space, and it fails to substitute.
Caution: Contents may have been coded under pressure.
|