If you call a subroutine as a method (which is what you are doing her), the first argument will be the object or class name. Since you're calling it on an object, the object will be the first argument. The object is a blessed hash, and that's exactly what you print out. You want to print the second argument, not the first.