Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: Check for Positive Integer entry only

by eric256 (Parson)
on May 09, 2007 at 21:49 UTC ( [id://614504]=note: print w/replies, xml ) Need Help??


in reply to Re: Check for Positive Integer entry only
in thread Check for Positive Integer entry only

Close. I think ($_ eq int($_) && $_ > 0) will work as a condition though.

use strict; use warnings; my @tests = qw/12 1a 4 -3 0 0.1 .1/; for (@tests) { print "$_ => "; no warnings qw/numeric/; if ($_ eq int($_) && $_ > 0) { print 'ok'; } else { print 'bad'; } print "\n"; } __END__ C:\Perl\test>perl int_test.pl 12 => ok 1a => bad 4 => ok -3 => bad 0 => bad 0.1 => bad .1 => bad

___________
Eric Hodges

Replies are listed 'Best First'.
Re^3: Check for Positive Integer entry only
by kyle (Abbot) on May 09, 2007 at 21:59 UTC
    use strict; use warnings; use Test::More; my @good = qw( 12 1 +1 1234 ); my @bad = qw( 1a -3 0.1 .1 0 +0 -0 ); plan 'tests' => scalar @good + scalar @bad; ok( is_int( $_ ), "[$_] is int" ) for @good; ok( ! is_int( $_ ), "[$_] is not int" ) for @bad; sub is_int { return ( $_[0] eq int( $_[0] ) && $_[0] > 0 ); } __END__ 1..11 ok 1 - [12] is int ok 2 - [1] is int not ok 3 - [+1] is int # Failed test '[+1] is int' # in perlmonks.pl at line 14. ok 4 - [1234] is int Argument "1a" isn't numeric in int at perlmonks.pl line 18. ok 5 - [1a] is not int ok 6 - [-3] is not int ok 7 - [0.1] is not int ok 8 - [.1] is not int ok 9 - [0] is not int ok 10 - [+0] is not int ok 11 - [-0] is not int # Looks like you failed 1 test of 11.

    Oops. I should have named that is_positive_int, etc.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://614504]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2024-04-18 22:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found