1. %Cls was assigned to an anonymous hash ref.
2. print func was called with hash in a scalar context.
Reason why you see 1/8 is :
-------------------------
If there are any key/value pairs at all, the value returned is a string consisting of the number of used buckets and the number of allocated buckets, separated by a slash.
Reason why you see HASH(0x124290) => :
--------------------------------------
B'coz you have the hash key assigned to a anon. hash ref and value as undef by default.
Hope this helps.