my $hash = { a1 => { a2 => 'Hi' } }; my @key = qw {a1 a2}; print "Hash-value is ", lookup($hash, @key), "\n"; sub lookup { my $hash = shift; my $key = shift; return @_ ? lookup($hash->{$key}, @_) : $hash->{$key}; }