in reply to deep copy of nested data structure

1 is just the return value of the function ("thaw" in your case cause it's processed after "freeze") when it succeeded
the module is changing %hashref or @hashref, you should use the strict pragma which should throw an error on your use of $hashref as it pretty much looks alike a hash
So better print out the scalar, array or hash when you've frozen it and thawed it again to see how it works.

Have a nice day
All decision is left to your taste
You might consider to use module Storable as well.
And no, don't rely on my first sentence, I was wrong, the 1 is the length of the returned array as described below.