in reply to hashes of array references
$numInHash = %$EDHRef;
This isn't doing what you think it is. Evaluating a hash in scalar context is rarely useful. They don't work the same way as arrays.
What you really want is to call keys in scalar context. That will give you the number of keys in the hash.
$numInHash = keys %$EDHRef;