##
y/./,/;s/\d(?=(\d{3})+(,|$))/$&./g; # 35, counting the semicolon
####
sidhekin@blackbox:~$ perl -le 'for (@ARGV) { y/./,/;s/\d(?=(\d{3})+(,|$))/$&./g;print }' 1234567.89 234567.89 1234567 234567
1.234.567,89
234.567,89
1.234.567
234.567
sidhekin@blackbox:~$