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

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

Mashes up MooseX::Getopt and App::Cmd

## NAME

MooseX::App::Cmd - Mashes up MooseX::Getopt and App::Cmd

## VERSION

version 0.34

## SYNOPSIS

```
    package YourApp::Cmd;
    use Moose;
    extends qw(MooseX::App::Cmd);
    package YourApp::Cmd::Command::blort;
    use Moose;
    extends qw(MooseX::App::Cmd::Command);
    has blortex => (
        traits => [qw(Getopt)],
        isa => 'Bool',
        is  => 'rw',
        cmd_aliases   => 'X',
        documentation => 'use the blortext algorithm',
    );
    has recheck => (
        traits => [qw(Getopt)],
        isa => 'Bool',
        is  => 'rw',
        cmd_aliases => 'r',
        documentation => 'recheck all results',
    );
    sub execute {
        my ( $self, $opt, $args ) = @_;
        # you may ignore $opt, it's in the attributes anyway
        my $result = $self->blortex ? blortex() : blort();
        recheck($result) if $self->recheck;
        print $result;
    }
```

## DESCRIPTION

This module marries App::Cmd with MooseX::Getopt.

Use it like App::Cmd advises (especially see App::Cmd::Tutorial), swapping App::Cmd::Command for MooseX::App::Cmd::Command.

Then you can write your moose commands as Moose classes, with MooseX::Getopt defining the options for you instead of `"opt_spec"` returning a Getopt::Long::Descriptive spec.

## METHODS

### BUILD

After calling `"new"` this method is automatically run, setting underlying App::Cmd attributes as per its documentation.

## SEE ALSO

- App::Cmd

  - App::Cmd::Tutorial

  - MooseX::Getopt

  - MooseX::App::Cmd::Command

  ## SUPPORT

Bugs may be submitted through the RT bug tracker \<https://rt.cpan.org/Public/Dist/Display.html?Name=MooseX-App-Cmd\> (or bug-MooseX-App-Cmd@rt.cpan.org \<mailto:bug-MooseX-App-Cmd@rt.cpan.org\>).

There is also a mailing list available for users of this distribution, at \<http://lists.perl.org/list/moose.html\>.

There is also an irc channel available for users of this distribution, at `"#moose"` on `"irc.perl.org"` \<irc://irc.perl.org/#moose\>.

## AUTHOR

XXXX XXX'XX (Yuval Kogman) \<nothingmuch@woobling.org\>

## CONTRIBUTORS

- •

  Mark Gardner \<mjgardner@cpan.org\>

- •

  Karen Etheridge \<ether@cpan.org\>

- •

  Graham Knop \<haarg@haarg.org\>

- •

  Daisuke Maki \<dmaki@cpan.org\>

- •

  Offer Kaye \<offer.kaye@gmail.com\>

- •

  brunov \<vecchi.b@gmail.com\>

- •

  Ken Crowell \<oeuftete@gmail.com\>

- •

  vovkasm \<vovkasm@gmail.com\>

- •

  Dann \<techmemo@gmail.com\>

- •

  Guillermo Roditi \<groditi@gmail.com\>

- •

  Michael Joyce \<ubermichael@gmail.com\>

## COPYRIGHT AND LICENCE

This software is copyright (c) 2008 by Infinity Interactive, Inc.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
