#!/usr/bin/perl use strict; use warnings; my @numbers = qw( 1 10 100 1000 10000 100000 1000000 10000000 100000000 1000000000 ); # Test print "Number: " . form_num($_, '.' ) . "\n" for @numbers; print "----US\n"; print "Number: " . form_num($_, ',' ) . "\n" for @numbers; sub form_num { my $num = reverse(shift); my $sep = shift; $num =~ s/(\d{3})(?=(?:\d{1,3}))/$1$sep/g; reverse($num); }