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
|
|---|