in reply to force user to only enter numbers

... print "enter a number" my $num = <STDIN> unless ($num =~/[0-9]+/){ print "this is not a number\n please type a number" } print "your number is $num"; ...

Replies are listed 'Best First'.
Re^2: force user to only enter numbers
by pvaldes (Chaplain) on Sep 02, 2011 at 16:13 UTC

    mmh, I forgot all ";" and this don't go

    much better like this:

    ... print "enter a number: \n"; my $num = <STDIN>; if ($num !~/^[+-]?\d+$/){ print "this is not a number\n please type a number\n"; } else {print "your number is $num\n"} ...
    Update: my $num = int(<STDIN>); thus, 12.45 now is a number

    ups... not so good idea,

    enter a number: dfr34

    your number is 0

      hohohou...

      use strict; print "enter a number: "; my $num = <STDIN>; if ($num !~/^[+-]?\d+\.?\d*$/){print "this is not a number\n"} else {print "your number is $num\n"} __OUTPUT__ 34 -> your number is 34 34.56 -> your number is 34.56 -1 -> your number is -1 34gtf -> this is not a number
      Thanks..This is what I was looking for..