JSON::Path gives you the power to deeply index data structures (containing
arrays and hashes) with path expressions.

    # index into { kitchen => { drawers => [ { fork => '!' } ] } }
    my $path = JSON::Path.new('$.kitchen.drawers[0].fork');

[JsonPath](http://goessner.net/articles/JsonPath/) is like XPath but adapted
for JSON. It simplifies and adapts the path expressions a bit, to better fit
the data structures stored by JSON. You can read more about the syntax by
following that link there, but here's a summary:

    $           root node
    .key        index hash key
    .*          index all hash keys
    ['key']     index hash key
    [2]         index array element
    [0,1]       index array slice
    [4:5]       index array range
    [:5]        index from the beginning
    [-3:]       index to the end
    [*]         index all array elements
    [?(expr)]   filter on (Perl 6) expression
    ..key       search all descendants for hash key

The module is functionally a port of CPAN's JSON::Path, even though the
internals look quite different.