in reply to adding characters via a regular expression

Assumung users are entering letters, whitespace and other stuff, and you want only the first numbers (maximal 9), use

$number =~ s/.*?(\d{1,9}).*/sprintf "%09d", "$1"/e;

This does not work if users enters no digit. The best way to handle this is to perform not just a single check:

my $number = <STDIN>; if( $number !~ /\d/ ) { print "no number"; } else { # clean up and pad input }

-- Frank