---
name: "Path::Dispatcher::Rule::CodeRef"
section: "3pm"
platform: "linux"
package: "libpath-dispatcher-perl"
version: "1.08-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Path::Dispatcher::Rule::CodeRef"
---

# Path::Dispatcher::Rule::CodeRef(3pm)

predicate is any subroutine

## NAME

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

## VERSION

version 1.08

## 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.

You're much better off creating a custom subclass of Path::Dispatcher::Rule if at all possible.

## 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 `$_`.

## SUPPORT

Bugs may be submitted through the RT bug tracker \<https://rt.cpan.org/Public/Dist/Display.html?Name=Path-Dispatcher\> (or bug-Path-Dispatcher@rt.cpan.org \<mailto:bug-Path-Dispatcher@rt.cpan.org\>).

## AUTHOR

Shawn M Moore, `"<sartak at bestpractical.com>"`

## COPYRIGHT AND LICENSE

This software is copyright (c) 2020 by Shawn M Moore.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
