hippo already pointed you to Scalar::Util's looks_like_number, which provides access to Perl's internal string-to-number conversion. kcott pointed out some of the potential pitfalls of that function, and just to add one more: for reasons, the string "0 but true" will also cause looks_like_number to return true, and it allows leading and trailing whitespace. Another thing to consider is for example whether you want to allow leading zeros, for example, some users may expect "077" to represent the integer 63 in octal, while others might simply expect this to be the integer 77 (the latter probably being more common among non-coders).
I just wanted to add that this is of course also a FAQ: How do I determine whether a scalar is a number/whole/integer/float? and that Regexp::Common::number provides more control over what strings you want to allow as numbers.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|