---
name: "MojoX::Routes::Pattern"
section: "3pm"
platform: "linux"
package: "libmojolicious-perl"
version: "0.999926-1+squeeze2"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/MojoX::Routes::Pattern"
---

# MojoX::Routes::Pattern(3pm)

Routes Pattern

## NAME

MojoX::Routes::Pattern - Routes Pattern

## SYNOPSIS

```
    use MojoX::Routes::Pattern;
    # New pattern object
    my $pattern = MojoX::Routes::Pattern->new;
```

## DESCRIPTION

MojoX::Routes::Pattern is a container for routes pattern which are used to match paths against.

## ATTRIBUTES

MojoX::Routes::Pattern implements the following attributes.

### "defaults"

```
    my $defaults = $pattern->defaults;
    $pattern     = $pattern->defaults({foo => 'bar'});
```

Default parameters.

### "pattern"

```
    my $pattern = $pattern->pattern;
    $pattern    = $pattern->pattern('/(foo)/(bar)');
```

Raw unparsed pattern.

### "quote\_end"

```
    my $quote = $pattern->quote_end;
    $pattern  = $pattern->quote_end(']');
```

Character indicating the end of a quoted placeholder, defaults to `")"`.

### "quote\_start"

```
    my $quote = $pattern->quote_start;
    $pattern  = $pattern->quote_start('[');
```

Character indicating the start of a quoted placeholder, defaults to `"("`.

### "regex"

```
    my $regex = $pattern->regex;
    $pattern  = $pattern->regex(qr/\/foo/);
```

Pattern in compiled regex form.

### "relaxed\_start"

```
    my $relaxed = $pattern->relaxed_start;
    $pattern    = $pattern->relaxed_start('*');
```

Character indicating a relaxed placeholder, defaults to `"."`.

### "reqs"

```
    my $reqs = $pattern->reqs;
    $pattern = $pattern->reqs({foo => qr/\w+/});
```

Regex constraints.

### "symbol\_start"

```
    my $symbol = $pattern->symbol_start;
    $pattern   = $pattern->symbol_start(':');
```

Character indicating a placeholder, defaults to `":"`.

### "symbols"

```
    my $symbols = $pattern->symbols;
    $pattern    = $pattern->symbols(['foo', 'bar']);
```

Placeholder names.

### "tree"

```
    my $tree = $pattern->tree;
    $pattern = $pattern->tree([ ... ]);
```

Pattern in parsed form.

### "wildcard\_start"

```
    my $wildcard = $pattern->wildcard_start;
    $pattern     = $pattern->wildcard_start('*');
```

Character indicating the start of a wildcard placeholder, defaults to `"*"`.

## METHODS

MojoX::Routes::Pattern inherits all methods from Mojo::Base and implements the following ones.

### "new"

```
    my $pattern = MojoX::Routes::Pattern->new('/:controller/:action',
        action => qr/\w+/
    );
```

Construct a new pattern object.

### "match"

```
    my $result = $pattern->match('/foo/bar');
```

Match pattern against a path.

### "parse"

```
    $pattern = $pattern->parse('/:controller/:action', action => qr/\w+/);
```

Parse a raw pattern.

### "render"

```
    my $path = $pattern->render({action => 'foo'});
```

Render pattern into a path with parameters.

### "shape\_match"

```
    my $result = $pattern->shape_match(\$path);
```

Match pattern against a path and remove matching parts.

## SEE ALSO

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