SYNOPSIS use Data::Seek; my $hash = {...}; my $seeker = Data::Seek->new(data => $hash); my $result = $seeker->search('*'); $result->data; DESCRIPTION Data::Seek is a module for traversing complex data structures. This module allows you to select specific node(s) in a hierarchical data structure using a criteria. A criteria is an expression consisting of one or more criterion. A criterion is the part of the criteria that is used to select node(s) to be returned in the result. Data::Seek is akin to Data::Dpath but with fewer features and a simple node selection syntax. Data::Seek node traversal is extremely fast, and it can throw exception objects which explain, in detail, why a search failed. This is very useful internally, and externally when processing foreign data structures where you need to provide detailed errors explaining how to resolve the missing or malformed data nodes. For more information on the underlying concepts, please see Data::Seek::Concepts. $seeker->cache; $seeker->cache(1); Encode the data structure and cache the result. Allows multiple queries to execute faster. Caching is disabled by default. $seeker->data; $seeker->data(Data::Seek::Data->new(...)); The data structure to be introspected, must be a hash reference, blessed or not, which defaults to or becomes a Data::Seek::Data object. $seeker->ignore; $seeker->ignore(1); Bypass exceptions thrown when a criterion finds an unknown or invalid node in the data structure. my @criteria = ('id', 'person.name.*'); my $result = $seeker->search(@criteria); Prepare a search object to use the supplied criteria and return a result object. Introspection is triggered when the result object is enacted. See Data::Seek::Search::Result for usage information. POD ERRORS Hey! The above document had some coding errors, which are explained below: Around line 27: Unknown directive: =attr Around line 35: Unknown directive: =attr Around line 43: Unknown directive: =attr Around line 51: Unknown directive: =method