---
name: "MooseX::App::ParsedArgv"
section: "3pm"
platform: "linux"
package: "libmoosex-app-perl"
version: "1.43-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MooseX::App::ParsedArgv"
---

# MooseX::App::ParsedArgv(3pm)

Parses @ARGV

## NAME

MooseX::App::ParsedArgv - Parses @ARGV

## SYNOPSIS

```
 use MooseX::App::ParsedArgv;
 my $argv = MooseX::App::ParsedArgv->instance;

 foreach my $option ($argv->available('option')) {
     say "Parsed ".$option->key;
 }
```

## DESCRIPTION

This is a helper class that holds all options parsed from `@ARGV`. It is implemented as a singleton. Unless you are developing a MooseX::App plugin you usually do not need to interact with this class.

## METHODS

### new

Create a new MooseX::App::ParsedArgv instance. Needs to be called as soon as possible.

### instance

Get the current MooseX::App::ParsedArgv instance. If there is no instance a new one will be created.

### argv

Accessor for the initinal `@ARGV`.

### hints

ArrayRef of attributes that tells the parser which attributes should be regarded as flags without values.

### first\_argv

Shifts the current first element from `@ARGV`.

### available

```
 my @options = $self->available($type);
 OR
 my @options = $self->available();
```

Returns an array of all parsed options or parameters that have not yet been consumed. The array elements will be MooseX::App::ParsedArgv::Element objects.

### consume

```
 my $option = $self->consume($type);
 OR
 my $option = $self->consume();
```

Returns the first option/parameter of the local `@ARGV` that has not yet been consumed as a MooseX::App::ParsedArgv::Element object.

### elements

Returns all parsed options and parameters.

### extra

Returns an array reference of unconsumed positional parameters and extra values.
