Beefy Boxes and Bandwidth Generously Provided by pair Networks
vroom Perl-Sensitive Sunglasses  Re: Regular Expressions  by
davido (Bishop) on Nov 15, 2012 at 01:28 UTC
( #1003913=note: print w/ replies, xml ) Need Help??  in reply
to Regular Expressions  I don't like using a regex as my only
determination that I've gotten a number from the user. I'd
rather let Perl tell me with 'Scalar::Util::looks_like_number'.
It's more reliable. In that case, you're mostly interested in
ascertaining whether you're looking at Fahrenheit or Celsius,
and whether the input came in an expected format. This will do
just that.  use strict; use warnings; use Scalar::Util qw(
looks_like_number ); # ..... if( $temp =~
m/^([0-9.+-]+)\s*([cf])/i and looks_like_number( $1 ) ) { my(
$number, $system ) = ( $1, lc $2 ); # Do whatever you want here;
# $number contains the temp, # and $system contains 'c' or 'f'.
} else { die "Invalid number format."; }  You'll notice the
regex isn't too particular about what constitutes a number. It
allow