---
name: "Mojolicious::Routes::Match"
section: "3pm"
platform: "linux"
package: "libmojolicious-perl"
version: "9.39+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Mojolicious::Routes::Match"
---

# Mojolicious::Routes::Match(3pm)

Find routes

## NAME

Mojolicious::Routes::Match - Find routes

## SYNOPSIS

```
  use Mojolicious::Controller;
  use Mojolicious::Routes;
  use Mojolicious::Routes::Match;
  # Routes
  my $r = Mojolicious::Routes->new;
  $r->get('/user/:id');
  $r->put('/user/:id');
  # Match
  my $c = Mojolicious::Controller->new;
  my $match = Mojolicious::Routes::Match->new(root => $r);
  $match->find($c => {method => 'PUT', path => '/user/23'});
  say $match->stack->[0]{id};
  # Render
  say $match->path_for->{path};
  say $match->path_for(id => 24)->{path};
```

## DESCRIPTION

Mojolicious::Routes::Match finds routes in Mojolicious::Routes structures.

## ATTRIBUTES

Mojolicious::Routes::Match implements the following attributes.

### endpoint

```
  my $route = $match->endpoint;
  $match    = $match->endpoint(Mojolicious::Routes::Route->new);
```

The route endpoint that matched, usually a Mojolicious::Routes::Route object.

### position

```
  my $position = $match->position;
  $match       = $match->position(2);
```

Current position on the "stack", defaults to `0`.

### root

```
  my $root = $match->root;
  $match   = $match->root(Mojolicious::Routes->new);
```

The root of the route structure, usually a Mojolicious::Routes object.

### stack

```
  my $stack = $match->stack;
  $match    = $match->stack([{action => 'foo'}, {action => 'bar'}]);
```

Captured parameters with nesting history.

## METHODS

Mojolicious::Routes::Match inherits all methods from Mojo::Base and implements the following new ones.

### find

```
  $match->find(Mojolicious::Controller->new, {method => 'GET', path => '/'});
```

Match controller and options against "root" to find an appropriate "endpoint".

### path\_for

```
  my $info = $match->path_for;
  my $info = $match->path_for(foo => 'bar');
  my $info = $match->path_for({foo => 'bar'});
  my $info = $match->path_for('named');
  my $info = $match->path_for('named', foo => 'bar');
  my $info = $match->path_for('named', {foo => 'bar'});
```

Render matching route with parameters into path.

## SEE ALSO

Mojolicious, Mojolicious::Guides, \<https://mojolicious.org\>.
