NAME Hash::Dispatch - Find CODE in a hash (hashlike) VERSION version 0.0010 SYNOPSIS $dispatch = Hash::Dispatch->dispatch( 'xyzzy' => sub { return 'xyzzy'; }, qr/.../ => 'xyzzy', ... ); $result = $dispatch->dispatch( 'xyzzy' ); $result->value->( ... ); DESCRIPTION Hash::Dispatch is a tool for creating a hash-like lookup for returning a CODE reference It is hash-like because a query against the dispatcher will only return once a CODE reference a found. If a key (a string or regular expression) maps to a string, then that will cause the lookup to begin again with the new value, recursing until a CODE reference is found or a deadend is reached: a => CODE0 b => CODE1 c => CODE2 d => a qr/z/ => c query( a ) => CODE0 query( b ) => CODE1 query( d ) => CODE0 query( xyzzy ) => CODE2 query( j ) => undef Hash::Dispatch will throw an exception if it is cycling: a => b b => a query( a ) => {{{ Exception! }}} USAGE $dispatcher = Hash::Dispatch->dispatch( ... ) Returns a new $dispatcher with the given mapping $result = $dispatcher->dispatch( ) Search $dispatcher with "" Returns an object with a "->value" method that contains the CODE reference Returns undef is nothing is found AUTHOR Robert Krimen COPYRIGHT AND LICENSE This software is copyright (c) 2011 by Robert Krimen. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.