in reply to
Anonymous Hash in Constructor
... we make use of anonymous hash, whats the reason, why do we do that ...
tobyink has already pointed out and demonstrated that is is quite possible to create a named hash and then bless and return a reference to the hash as the object reference. But why is this not commonly done? The name of the referenced hash (or any other named data structure that might be used) is lost as soon as the constructor subroutine ends, and there is no way to ever access object data again except by reference, so there seems to be no point. The only reason I can think of to create and reference a named hash (or whatever structure) is self-documentation: a hash named %attributes pretty much says it all, but one can do the same for an anonymous reference.