if ( $s =~ $$hash{ "s" })
{ print "\t1 ok\n";}else { print "\t1 NOK\n";
if ($d =~ $$hash{ "p1" }){ print "\t2 ok\n";}else{ print "\t2 NOK\n";}
!
####
1 ok #is returned even when the hash doesn't have a corresponding value for $s.
3 NOK #this works correct for $p1?
####
#!/usr/local/bin/perl
#title "Multiple Test Regex Does not work the way I expect";
#see the '' around hash keys..
$hash = {
"s" => "",
"d" => "19.28.18.28",
"p1" => "",
"p2" => "88"
};
$s="192.168.3.79";
$d="19.28.18.28";
$p1="3269";
$p2="88";
print "$s -> $$hash{'s'}\n";
if ( $s eq $$hash{ "s" }) {
print "\t1 ok\n";
}else {
print "\t1 NOK\n";
}
print "$d -> $$hash{'d'}\n";
if ($d eq $$hash{ "d" }){
print "\t2 ok\n";
}else{
print "\t2 NOK\n";
}
print "$p1 -> $$hash{'p1'}\n";
if ($p1 eq $$hash{ "p1"}){
print "\t3 ok\n";
}else{
print "\t3 NOK\n";
}
print "$p2 -> $$hash{'p2'}\n";
if($p2 eq $$hash{ "p2" }) {
print "\t4 ok\n";
}else {
print "\t4 NOK\n";
}