use List::Util qw(reduce); my $item = reduce { $a->{$b} } $hash, @path_segments;