1MooseX::App::Simple(3)User Contributed Perl DocumentationMooseX::App::Simple(3)
2
3
4

NAME

6       MooseX::App::Simple - Single command applications
7

SYNOPSIS

9         package MyApp;
10         use MooseX::App::Simple qw(Config Color);
11
12         parameter 'param' => (
13             is            => 'rw',
14             isa           => 'Str',
15             documentation => q[First parameter],
16             required      => 1,
17         ); # Positional parameter
18
19         option 'my_option' => (
20             is            => 'rw',
21             isa           => 'Bool',
22             documentation => q[Enable this to do fancy stuff],
23         ); # Option (--my_option)
24
25         has 'private' => (
26             is              => 'rw',
27         ); # not exposed
28
29         sub run {
30             my ($self) = @_;
31             # Do something
32         }
33
34       And then in some simple wrapper script:
35
36        #!/usr/bin/env perl
37        use MyApp;
38        MyApp->new_with_options->run;
39

DESCRIPTION

41       MooseX::App::Simple works basically just as MooseX::App, however it
42       does not search for commands and assumes that you have all options and
43       parameters defined in the current class.
44
45       Read the Tutorial for getting started with a simple MooseX::App command
46       line application.
47

METHODS

49   new_with_options
50        my $myapp_command = MyApp->new_with_options();
51
52       This method reads the command line arguments from the user and tries to
53       create instantiate the current class with the ARGV-input. If it fails
54       it returns a MooseX::App::Message::Envelope object holding an error
55       message.
56
57       You can pass a hash or hashref of default params to new_with_options
58
59        MyApp->new_with_options( %default );
60
61       Optionally you can pass a custom ARGV to this constructor
62
63        my $obj = MyApp->new_with_options( ARGV => \@myARGV );
64
65       However, if you do so you must take care of propper @ARGV encoding
66       yourself.
67

OPTIONS

69       Same as in MooseX::App, however all options regarding command loading
70       such as app_namespace and app_exclude are not available.
71

PLUGINS

73       Same as in MooseX::App. However plugings adding additional commands
74       (eg. version) will have no effect with MooseX::App::Simple.
75

SEE ALSO

77       Read the Tutorial for getting started with a simple MooseX::App command
78       line application.
79
80       See MooseX::Getopt and MooX::Options for alternatives
81
82
83
84perl v5.36.0                      2023-01-20            MooseX::App::Simple(3)
Impressum