in reply to separating replacements

Your main question has been answered already but here are a couple of ideas I had that avoid using capturing groups. The first just replaces any '.' with '.0'. The second uses a lookbehind to find a digit and a '.' and a lookahead to check for a digit and then inserts a '0'. I looked around for a numeric version of \b for matching number boundaries but didn't see anything.

use strict; use warnings; my $num1 = 2.3; print "$num1 -> "; $num1 =~ s/\./.0/; print "$num1\n"; $num1 = 2.3; print "$num1 -> "; $num1 =~ s/(?<=\d\.)(?=\d)/0/; print "$num1\n"; __DATA__ 2.3 -> 2.03 2.3 -> 2.03