in reply to Hash problem

The dot operator puts the hash in a scalar context. In perldata, it is written,

If you evaluate a hash in scalar context, it returns false if the hash is empty. If there are any key/value pairs, it returns true; more precisely, the value returned is a string consisting of the number of used buckets and the number of allocated buckets, separated by a slash.

It might be instructive to see also Seeking explanation on assigning a hash to a scalar.