NAME Message::Match - Fast, simple message matching SYNOPSIS use Message::Match qw(mmatch); #basic usage mmatch( {a => 'b', c => 'd'}, #message {a => 'b'} #match ); #true mmatch( {a => 'b', c => {x => 'y'}, #message {c => {x => 'y'}} #match ); #true mmatch( {a => 'b', c => 'd'}, #message {x => 'y'} #match ); #false #set membership mmatch( {a => [1,2,3], some => 'thing'}, #message {a => 2}, #match ); #true mmatch( {a => [1,2,3], some => 'thing'}, #message {a => 4}, #match ); #false #array recursion mmatch( {a => [{a => 'b'},2,3], x => 'y'}, #message {a => [{a => 'b'},2,3]}, #match ); #true #regex mmatch( {a => 'forefoot'}, #message {a => ' special/foo/'}, #match ); #true #universal match mmatch( {some => 'random', stuff => 'here'}, #message {}, #match ); #true DESCRIPTION This is a very light-weight and fast library that does some basic but reasonably powerful message matching. FUNCTION mmatch($message, $match); Takes two and only two arguments, both HASH references. SEE ALSO Good question; I found some things somewhat similiar to this, but not quite close enough to mention here. TODO Define handling for other tuples: HASH,scalar scalar,HASH scalar,ARRAY ARRAY,HASH HASH,ARRAY More special handling. BUGS None known. COPYRIGHT Copyright (c) 2012, 2013 Dana M. Diederich. All Rights Reserved. AUTHOR Dana M. Diederich <diederich@gmail.com> =cut