NAME¶
Path::Dispatcher::Match - the result of a successful rule match
SYNOPSIS¶
my $rule = Path::Dispatcher::Rule::Tokens->new(
tokens => [ 'attack', qr/^\w+$/ ],
block => sub {
my $match = shift;
attack($match->pos(2))
},
);
my $match = $rule->match("attack dragon");
# introspection
$match->path # "attack dragon"
$match->leftover # empty string (populated with prefix rules)
$match->rule # $rule
$match->positional_captures # ["attack", "dragon"] (decided by the rule)
$match->pos(1) # "attack"
$match->pos(2) # "dragon"
$match->run # attack("dragon")
DESCRIPTION¶
If a Path::Dispatcher::Rule successfully matches a path, it creates one or more
"Path::Dispatcher::Match" objects.
ATTRIBUTES¶
rule¶
The Path::Dispatcher::Rule that created this match.
path¶
The path that the rule matched.
leftover¶
The rest of the path. This is populated when the rule matches a prefix of the
path.
positional_captures¶
Any positional captures generated by the rule. For example,
Path::Dispatcher::Rule::Regex populates this with the capture variables.
named_captures¶
Any named captures generated by the rule. For example,
Path::Dispatcher::Rule::Regex populates this with named captures.
parent¶
The parent match object, if applicable (which may be set if this match is the
child of, for exampl, a Path::Dispatcher::Rule::Under prefix)
METHODS¶
run¶
Executes the rule's codeblock with the same arguments.
pos($i)¶
Returns the $ith positional capture, 1-indexed.