A couple of alternatives, just catering for positive integers, that don't use regular expressions.
$ perl -Mstrict -Mwarnings -E ' say join q{,}, reverse map scalar reverse, unpack q{(a3)*}, scalar reverse for qw{ 1 12 123 1234 12345 123456 1234567 12345678 123456789 1234567890 };' 1 12 123 1,234 12,345 123,456 1,234,567 12,345,678 123,456,789 1,234,567,890 $
$ perl -Mstrict -Mwarnings -E ' say sub { my $v = shift; return $v if length $v < 4; my $o = 0; substr $v, $_, 0, q{,} for reverse map { $o -= 3 } 1 .. int( ( length( $v ) - 1 ) / 3 ); return $v; }->( $_ ) for qw{ 1 12 123 1234 12345 123456 1234567 12345678 123456789 1234567890 };' 1 12 123 1,234 12,345 123,456 1,234,567 12,345,678 123,456,789 1,234,567,890 $
There are several solutions in this thread.
Cheers,
JohnGG
In reply to Re: Formating numbers with thousand separator - Solution for web-applications
by johngg
in thread Formating numbers with thousand separator - Solution for web-applications
by Zzenmonk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |