Validation by Direct Comparison
10.22.1 Problem
You need to make sure a value is equal to or not equal to some specific value, or that it lies within a given range of values.
10.22.2 Solution
Perform a direct comparison.
10.22.3 Discussion
The simplest kind of validation is to perform comparisons against specific literal values:
# require a nonempty value $valid = ($val ne ""); # require a specific nonempty value $valid = ($val eq "abc"); # require one of several values $valid = ($val eq "abc" || $val eq "def" || $val eq "xyz"); # require value in particular range (1 to 10) $valid = ($val >= 1 && $val <= 10);
Most of those tests perform string comparisons. The last is a numeric comparison; however, a numeric comparison often is preceded by preliminary tests to verify first that the value doesn't contain non-numeric characters. Pattern testing, discussed in the next section, is one such way to do that.
String comparisons are case sensitive by default. To make a comparison case insensitive, convert both operands to the same lettercase:
# require a specific nonempty value in case-insensitive fashion
$valid = (lc ($val) eq lc ("AbC"));
Категории