use 5.20.0; use strict; my $n = 4; my $raw = (1234567.56567); my $orig = (1234567.56567 * $n); say "raw real number: $raw"; say "factored real nbr: $orig"; my $str = "This is a real number ${\($raw * $n)}."; say $str; (my $tybalt89 = $str) =~ s{ \d+ }{ $& =~ s/ \B (?= (?:\d{3})+ $ ) /,/xrg }xe; say "tybalt89's with assignment and \\r tweak => \'$tybalt89\'"; (my $perlboy = (($raw) =~ s{ \d+\.?\d* }{ $& * 4 }erx )) =~ s{ \d+ }{ $& =~ s/ (?<=\d) (?= (?:\d{3} )+ (?!\d) ) /,/xrg; }ex; say "perlboy's => \'$perlboy\'"; (my $mixed = (($raw) =~ s{ \d+\.?\d* }{ $& * 4 }erx )) =~ s{ \d+ }{ $& =~ s/ \B (?= (?:\d{3})+ $ ) /,/xrg }xe; say "perboy's w/tybalt89's drop-in with \\r tweak => \'$mixed\'"; say "tybalt89's original regex, without assignment => ", ($str) =~ s{ \d+ }{ $& =~ s/ \B (?= (?:\d{3})+ $ ) /,/xgr }xer; say "tybalt89's original regex, without assignment => ", (1234567.56567 * 4) =~ s{ \d+ }{ $& =~ s/ \B (?= (?:\d{3})+ $ ) /,/xgr }xer; exit(0) __END__