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

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

predicate is a list of tokens

## NAME

Path::Dispatcher::Rule::Tokens - predicate is a list of tokens

## VERSION

version 1.08

## SYNOPSIS

```
    my $rule = Path::Dispatcher::Rule::Tokens->new(
        tokens    => [ "comment", "show", qr/^\d+$/ ],
        delimiter => '/',
        block     => sub { display_comment(shift->pos(3)) },
    );
    $rule->match("/comment/show/25");
```

## DESCRIPTION

Rules of this class use a list of tokens to match the path.

## ATTRIBUTES

### tokens

Each token can be a literal string, a regular expression, or a list of either (which are taken to mean alternations). For example, the tokens:

```
    [ 'ticket', [ 'show', 'display' ], [ qr/^\d+$/, qr/^#\w{3}/ ] ]
```

first matches "ticket". Then, the next token must be "show" or "display". The final token must be a number or a pound sign followed by three word characters.

The results are the tokens in the original string, as they were matched. If you have three tokens, then `"match->pos(1)"` will be the string's first token ("ticket"), `"match->pos(2)"` its second ("display"), and `"match->pos(3)"` its third ("#AAA").

Capture groups inside a regex token are completely ignored.

### delimiter

A string that is used to tokenize the path. The delimiter must be a string because prefix matches use `"join"` on unmatched tokens to return the leftover path. In the future this may be extended to support having a regex delimiter.

The default is a space, but if you're matching URLs you probably want to change this to a slash.

### case\_sensitive

Decide whether the rule matching is case sensitive. Default is 1, case sensitive matching.

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