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.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.