Data-Leaf-Walker SYNOPSIS $data = { a => 'hash', or => [ 'array', 'ref' ], with => { arbitrary => 'nesting' }, }; $walker = Data::Leaf::Walker->new( $data ); while ( my ( $k, $v ) = $walker->each ) { print "@{ $k } : $v\n"; } ## output might be ## a : hash ## or 0 : array ## or 1 : ref ## with arbitrary : nesting DESCRIPTION C provides simplified access to nested data structures. It operates on key paths in place of keys. A key path is a list of HASH and ARRAY indexes which define a path through your data structure. For example, in the following data structure, the value corresponding to key path C<[ 0, 'foo' ]> is 'bar': $aoh = [ { foo => 'bar' } ]; You can get and set that value like so: $walker = Data::Leaf::Walker->new( $aoh ); ## create the walker $bar = $walker->fetch( [ 0, 'foo' ] ); ## get the value 'bar' $walker->store( [ 0, 'foo'], 'baz' ); ## change value to 'baz' INSTALLATION To install this module, run the following commands: perl Build.PL ./Build ./Build test ./Build install Alternatively, to install with ExtUtils::MakeMaker, you can use the following commands: perl Makefile.PL make make test make install SUPPORT AND DOCUMENTATION After installing, you can find documentation for this module with the perldoc command. perldoc Data::Leaf::Walker You can also look for information at: RT, CPAN's request tracker AnnoCPAN, Annotated CPAN documentation CPAN Ratings Search CPAN COPYRIGHT AND LICENCE Copyright (C) 2009 Dan Boorstein This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See for more information.