---
name: "Path::Dispatcher::Rule::Under"
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::Under"
---

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

rules under a predicate

## NAME

Path::Dispatcher::Rule::Under - rules under a predicate

## VERSION

version 1.08

## SYNOPSIS

```
    my $ticket = Path::Dispatcher::Rule::Tokens->new(
        tokens => [ 'ticket' ],
        prefix => 1,
    );
    my $create = Path::Dispatcher::Rule::Tokens->new(
        tokens => [ 'create' ],
        block  => sub { create_ticket() },
    );
    my $delete = Path::Dispatcher::Rule::Tokens->new(
        tokens => [ 'delete', qr/^\d+$/ ],
        block  => sub { delete_ticket(shift->pos(2)) },
    );
    my $rule = Path::Dispatcher::Rule::Under->new(
        predicate => $ticket,
        rules     => [ $create, $delete ],
    );
    $rule->match("ticket create");
    $rule->match("ticket delete 3");
```

## DESCRIPTION

Rules of this class have two-phase matching: if the predicate is matched, then the contained rules are matched. The benefit of this is less repetition of the predicate, both in terms of code and in matching it.

## ATTRIBUTES

### predicate

A rule (which *must* match prefixes) whose match determines whether the contained rules are considered. The leftover path of the predicate is used as the path for the contained rules.

### rules

A list of rules that will be try to be matched only if the predicate is matched.

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