sub insert_sep { my ( $number, $separator ) = @_; return if ! defined $number; $separator //= ','; return $number if $number =~ /\Q$separator\E/; return $number if $number !~ /^([+-]?\d{4,})(\D\d+)?\z/; my ( $n1, $n2 ) = ( $1, $2 ); $n1 =~ s/(\d)(?=(?:\d{3})+\b)/$1$separator/g; return $n1 . $n2 if $n2; return $n1; }