---
name: "Catmandu::Fix::Has"
section: "3pm"
platform: "linux"
package: "libcatmandu-perl"
version: "1.2024-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catmandu::Fix::Has"
---

# Catmandu::Fix::Has(3pm)

helper class for creating Fix-es with (optional) parameters

## NAME

Catmandu::Fix::Has - helper class for creating Fix-es with (optional) parameters

## SYNOPSIS

```
    package Catmandu::Fix::foo;
    use Moo;
    use Catmandu::Fix::Has;
    has greeting => (fix_arg => 1);   # required parameter 1
    has message  => (fix_arg => 1);   # required parameter 2
    has eol      => (fix_opt => 1 , default => sub {'!'} ); # optional parameter 'eol' with default '!'
    sub fix {
        my ($self,$data) = @_;
        print STDERR $self->greeting . ", " . $self->message . $self->eol . "\n";
        $data;
    }
    1;
```

## PARAMETERS

- fix\_arg

  Required argument when set to 1. The Fix containing the code fragment below needs  two arguments.

  ```
      use Catmandu::Fix::Has;
      has message => (fix_arg => 1); # required parameter 1
      has number  => (fix_arg => 1); # required parameter 2
  ```

  When the fix\_arg is set to 'collect', then all arguments are read into an array. The Fix containing the code fragment below needs at least 1 or more arguments. All arguments will get collected into the `"messages"` array:

  ```
      use Catmandu::Fix::Has;
      has messages => (fix_arg => 'collect'); # required parameter
  ```

- fix\_opt

  Optional named argument when set to 1. The Fix containing the code fragment below can have two optional arguments `"message: ..."`, `"number: ..."`:

  ```
      use Catmandu::Fix::Has;
      has message => (fix_opt => 1); # optional parameter 1
      has number  => (fix_opt => 1); # optional parameter 2
  ```

  When the fix\_opt is set to 'collect', then all optional argument are read into an array. The Fix containing the code fragment below needs at least 1 or more arguments. All arguments will get collected into the `"options"` array:

  ```
      use Catmandu::Fix::Has;
      has options => (fix_opt => 'collect'); # optional parameter
  ```

## SEE ALSO

Catmandu::Fix
