in reply to exists on hash autovivifies right?

I've taken advantage of short-circuiting operators to deal with this in the past, like so:
if (exists($x->{a}) && exists($x->{a}->{c}) { #do stuff }

Might get annoying if your hash is particularly deep, though.