$data = { data => 'hello', complicated => { version => 1, type => 'struct', }, req => 'Submit' }; foreach (keys %$data ) { if (ref($data->{$_})) { foreach (keys %{$data->{$_}}) { print " $_ : ".$data->{$_}->{$_}."\n"; } } }