in reply to Not a HASH reference

How are you calling process(), and with what data? Your code works fine for me when I rename $VAR1 in the Dumper output to $aref, rename $address to $name and call like this: process($aref).

Could it be that one or more elements in your data aren't hash references?

foreach my $row (@data){ if (ref($row) ne 'HASH'){ print "$row not a href\n"; next; } }

-stevieb