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, 2016 Dana M. Diederich. All Rights Reserved.

AUTHOR

    Dana M. Diederich <diederich@gmail.com>