Devel::Events::Match - Event matching, splicing and dicing.
use Devel::Events::Match;
my $matcher = Devel::Events::Match->new;
my @matching = $matcher->grep( match => $cond, events => \@events );
This class provides event list filtering, chunking etc based on a simple match
format.
This class is used by Devel::Events::Handler::Log::Memory in order
to ease access into the event log.
- compile_cond
- Used to compile condition values into code references.
Scalars become equality tests on the first element (event
type/name matches this).
Hashes become recursive conditions, where each key is matched
on the field. The 'type' pseudofield is the first element of the event.
Every value in the hash gets
"compile_cond" called on it
recursively.
Code references are returned verbatim.
The output is a code reference that can be used to match
events.
- first %args
- Return the first event that matches a certain condition.
Requires the "match" and
"events" parameters.
- grep %args
- Return the list of events that match a certain condition.
Requires the "match" and
"events" parameters.
- limit from => $cond, to => $cond, %args
- Return events between two events. If
"from" or
"to" is omitted then it returns all the
events up to or from the other filter
("from" defaults to
"sub { 1 }" and
"to" defaults to
"sub { 0 }").
If either the
"from_inclusive" and
"to_inclusive" parameters are provided
and set to false then the range will only begin on the event after the
"from" match and end on the event
before the "to" match
respectively.
Requires the "events"
parameter.
- chunk %args
- Cuts the event log into chunks. When $marker
matches a new chunk is opened.
Requires the "marker" and
"events" parameters.
The "first" and
"last" parameters, when provided and
false will cause the first and last chunks to be dropped,
respectively.
The first chunk contains all the events up to the first
matching one.
- take_while %args
- take_until %args
- drop_while %args
- drop_until %args
- Require the "match" and
"events" parameters.
Bugs may be submitted through the RT bug tracker
<https://rt.cpan.org/Public/Dist/Display.html?Name=Devel-Events> (or
bug-Devel-Events@rt.cpan.org <mailto:bug-Devel-Events@rt.cpan.org>).
XXXX XXX'XX (Yuval Kogman) <nothingmuch@woobling.org>
This software is copyright (c) 2007 by XXXX XXX'XX (Yuval Kogman).
This is free software; you can redistribute it and/or modify it
under the same terms as the Perl 5 programming language system itself.