Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re^2: variable type

by imp (Priest)
on Dec 07, 2006 at 14:55 UTC ( #588348=note: print w/replies, xml ) Need Help??

in reply to Re: variable type
in thread variable type

That's almost correct. $ will match an optional newline as well, so both "5" and "5\n" are valid. Better to use \z

print "1. number\n" if "5" =~ /^\d+$/; print "1. number and newline\n" if "5\n" =~ /^\d+$/; print "2. number\n" if "5" =~ /^\d+\z/; print "2. number and newline\n" if "5\n" =~ /^\d+\z/
The advice to use a \z fixes the problem of bad data being submitted, but it might block otherwise good data, depending on the input source. Data read from a filehandle could have the newline present, without it being from a misbehaving user.
chomping the field in question is a better approach than being stricter with the regex.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://588348]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (3)
As of 2018-01-20 06:14 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (226 votes). Check out past polls.