At 02:08 2002.04.10, you wrote:
>Hey all,
>
>I have created a hash that looks similar to the following...
>
>%hash (
>        'test1' => $test1,
>        'test2' => $test2,
>        'test3' => $test3,
>);
>
>Now is it possible to have a little piece of code check the values of
>that hash and see if their are any blank fields?
>
>Something like...
>
>if ($hash($_) eq "" || $hash($_) == ""}
>  print "These hash keys $hash($_) did not contain any data!\n";
>} else {
>  print "It worked!";
>}
>
>Regards,
>
>Dan

Hashes use the {}, not the ().

$hash{$_} == "" is not right. == is for numerical comparaison so perl automagicaly 
transform each side to a number before resolving the ==.

This means that "a" == "b" returns true and "This is a value" == "" also returns true. 
Not what you want I beleive.

Your first test ($hash{$_} eq "") should work like you intend it.

You can be lazy and test like this

        if($hash{$_}) then { print "There is a value\n" }

if you know in advance that none of your value can be the number or the string "0".

Hope this helps.


----------------------------------------------------------
Éric Beaudoin               <mailto:[EMAIL PROTECTED]>


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to