Here is a little piece of code you might find informative:
#!/usr/bin/perl
$a = shift;
$b = shift;
#for intergers only
if ($a =~ /^\d+$/ && $b =~ /^\d+$/) {
printf "$a == $b (%s)\n", $a == $b ? "yes" : "no";
} else {
printf "$a eq $b (%s)\n", $a eq $b ? "yes" : "no";
}
#or for floating point numbers
if ($a =~ /^\d+(\.\d?)?$/ && $b =~ /^\d+(\.\d?)$/) {
printf "$a == $b (%s)\n", $a == $b ? "yes" : "no";
} else {
printf "$a eq $b (%s)\n", $a eq $b ? "yes" : "no";
}
> perl diff 1 1.
1 eq 1. (no)
1 == 1. (yes)
This still needs work, as it does not see that 1e2 == 100.
-- gam3
A picture is worth a thousand words, but takes 200K.