Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more

# ABSTRACT: App::Spec objects representing command line parameters
use strict;
our $VERSION = '0.013'; # VERSION
use Moo;
sub build {
my ($class, %args) = @_;
my %hash = $class->common(%args);
my $self = $class->new({
%hash,
});
return $self;
}
sub to_usage_header {
my ($self) = @_;
my $name = $self->name;
my $usage = '';
if ($self->multiple and $self->required) {
$usage = "<$name>+";
}
elsif ($self->multiple) {
$usage = "[<$name>+]";
}
elsif ($self->required) {
$usage = "<$name>";
}
else {
$usage = "[<$name>]";
}
}
1;
=pod
=head1 NAME
App::Spec::Parameter - App::Spec objects representing command line parameters
=head1 SYNOPSIS
This class inherits from L<App::Spec::Argument>
=head1 METHODS
=over 4
=item build
my $param = App::Spec::Parameter->build(
name => 'verbose',
summary => 'lala',
);
=item to_usage_header
my $param_usage_header = $param->to_usage_header;
# results
# if multiple and required
# <$name>+
# if multiple
# [<$name>+]
# if required
# <$name>
# else
# [<$name>}
=back
=cut