1MooseX::App::Plugin::DeUpseenrdsC(o3n)tributed Perl DocuMmoeonsteaXt:i:oAnpp::Plugin::Depends(3)
2
3
4
6 MooseX::App::Plugin::Depends - Adds dependent options
7
9 In your base class:
10
11 package MyApp;
12 use MooseX::App qw(Depends);
13
14 use Moose::Util::TypeConstraints;
15
16 option 'FileFormat' => (
17 is => 'ro',
18 isa => enum( [qw(tsv csv xml)] ),
19 );
20
21 option 'WriteToFile' => (
22 is => 'ro',
23 isa => 'Bool',
24 depends => [qw(FileFormat)],
25 );
26
27 In your script:
28
29 #!/usr/bin/env perl
30
31 use strict;
32 use warnings;
33
34 use MyApp;
35
36 MyApp->new_with_options( WriteToFile => 1 );
37 # generates Error
38 # Option 'WriteToFile' requires 'FileFormat' to be defined
39
40 MyApp->new_with_options( WriteToFile => 1, FileFormat => 'tsv );
41 # generates no errors
42
43 MyApp->new_with_options();
44 # generates no errors
45
47 In many real-world scenarios, sets of options are, by design, needed to
48 be specified together. This plugin adds the ability to create dependent
49 options to your application, options that require one or more other
50 options for your application to perform properly.
51
52
53
54perl v5.34.0 2021-07-22 MooseX::App::Plugin::Depends(3)