use strict;
my $number = 1234567890;
print STDOUT "In: $number\n";
my $reversed = reverse($number);
print STDOUT "Reversed: $reversed\n";
my @array = split/(\d{3})/, $reversed;
shift @array;
print STDOUT "Array: '" . join ("' - '", @array) . "'\n";
my $out = join("", map { $_ eq '' ? ',' : reverse($_) } @array);
print STDOUT "Out: " . reverse($out) . "\n";
exit 0;
####
In: 1234567890
Reversed: 0987654321
Array: '098' - '' - '765' - '' - '432' - '1'
Out: 1234,567,890
####
my $out = substr(reverse(join("", map { $_ eq "" ? '' : $_ . ',' } split/(\d{3})/, reverse($number))), 1);