The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Path::Dispatcher::Rule::CodeRef - predicate is any subroutine

SYNOPSIS

    my $rule = Path::Dispatcher::Rule::CodeRef->new(
        matcher => sub { time % 2 },
        block => sub { warn "Odd time!" },
    );

    my $undef = $rule->match("foo"); # even time; no match :)

    my $match = $rule->match("foo"); # odd time; creates a Path::Dispatcher::Match

    $rule->run; # warns "Odd time!"

DESCRIPTION

Rules of this class can match arbitrarily complex values. This should be used only when there is no other recourse, because there's no way we can inspect how things match. Create a custom subclass of Path::Dispatcher::Rule if necessary!

ATTRIBUTES

matcher

A coderef that returns undef if there's no match, otherwise a list of strings (the results).

The coderef receives the path object as its argument, and the path string as $_.