Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

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.
Comment on Re^2: variable type
Download Code

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2016-05-26 06:17 GMT
Find Nodes?
    Voting Booth?