local $\="\n"; sub HUMANo { my $n = shift; my $c = 3; my $Ln = length($n); return $n if $Ln <= 3; while($c <= $Ln) { substr($n, - $c, 0, ','); # insert $c += 4; } return $n; } print HUMANo($_) for qw[ 1 11 111 1111 11111 111111 1111111 ]; __END__ 1 11 111 1,111 11,111 111,111 1,111,111