MooseX::App::Plugin::Depends - Adds dependent options
In your base class:
package MyApp; use MooseX::App qw(Depends); use Moose::Util::TypeConstraints; option 'FileFormat' => ( is => 'ro', isa => enum( [qw(tsv csv xml)] ), ); option 'WriteToFile' => ( is => 'ro', isa => 'Bool', depends => [qw(FileFormat)], );
In your script:
#!/usr/bin/env perl use strict; use warnings; use MyApp; MyApp->new_with_options( WriteToFile => 1 ); # generates Error # Option 'WriteToFile' requires 'FileFormat' to be defined MyApp->new_with_options( WriteToFile => 1, FileFormat => 'tsv ); # generates no errors MyApp->new_with_options(); # generates no errors
In many real-world scenarios, sets of options are, by design, needed to be specified together. This plugin adds the ability to create dependent options to your application, options that require one or more other options for your application to perform properly.
To install MooseX::App, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MooseX::App
CPAN shell
perl -MCPAN -e shell install MooseX::App
For more information on module installation, please visit the detailed CPAN module installation guide.