Aug
13

How To Tell A Number From A String

By celso

Often, I need to compare two variables but I don’t know if they are numbers or strings. I need to know the type so I can pick the proper comparison operators, i.e., == or eq, > or gt.
So, here’s how to do it:


~$x ne ~"$x" ? 'numeric' : 'string'

~ is the bitwise negation operator (see perlop). It does not negate integers and strings in the same way.

Examples:


$ perl -e 'print ~1, "\n"'
4294967294
$ perl -e 'print ~"1", "\n"'
Œ

(character which ASCII code is 255 – ord(‘1′))

Categories : Notes, Perl

Leave a Comment

You must be logged in to post a comment.