in reply to CGI hidden retreive array

Your main problem is that you're *printing* @phn (in your hidden field) and then reading back its string representation - as your error message says, it can't use string "Phones=HASH(0x84f7f90)" as a hashref. Indeed, that hashref doesn't exist any more.

If you want to pass data from invocation to invocation, you'll need to either pass all data as strings (phones[$i]->{pcode} etc.) or save it all somewhere else, in a session db for instance, or by simply passing user-ids around and re-reading your db each time.

Cheers, Ben.