if (ref($ref) eq 'HASH') { # ... some code ... if (%$ref) { while (($key, $value) = each %$ref) { # ... recurse into the structure ... } } # ... some more code ... }