#!/usr/bin/env perl
use v5.12;
use warnings;

$_ = 123456789;

s/
(?<=[0-9]) # 前に1文字以上の数字があり
(?=(?:[0-9]{3})+ # 後ろに3文字の数字のセットが1個以上あり
$) # 後ろに余計なものが続かない位置にマッチ
/,/gx; # マッチした位置にカンマを挿入
say; # 123,456,789

$_ = 12345678;
s/(?<=[0-9])(?=(?:[0-9]{3})+$)/,/g;
say; # 12,345,678
上記正規表現は、『詳説 正規表現 第3版』p.62より

詳説 正規表現 第3版
Jeffrey E.F. Friedl
オライリージャパン
2008-04-26