Data in perl is determined more by how you use it than what it contains. The term 'numeric' is kind of overloaded. The perlfaq4 page answers the question "How do I determine whether a scalar is a number/whole/integer/float?"
The character "a" can be used numerically, i.e. if ("a" == 0). What you probably want, though is the regex already mentioned. | [reply] [d/l] |
Well, the general answer to your question is: regular expresion. Below is an example of your question/answer:
#!/usr/bin/perl -w
use strict;
my @test_strings = ("One flew over the cuckoo's nest", "1 flew over th
+e cuckoo's nest");
foreach my $match_string (@test_strings) {
if ($match_string =~ /\d+/) {
print "My matching string is\: $match_string\n";
}
}
If you run this, it will print:
"My matching string is: 1 flew over the cuckoo's nest",
because the regular expression /\d+/ matched the "1" in that string. Notice, that it completely ignored "One flew over the cuckoo's nest", because it did not match our regular expression.
\d means digit character, while "+" means one, or more.
For more on regexen, see this, or this, do a Super Search on regular expressions, or, if on a *nix machine, type perldoc perlre.
HTH,
Steve | [reply] [d/l] [select] |
A simple regexp should do nicely.
#print "numeric" if $val is one character and it's a digit
my $val = "3";
print "numeric\n" if($val =~ m/^\d$/);
/J
| [reply] [d/l] |
Thank you all for your help!
(I feel like David Wilcox in this 'town') | [reply] |