Acme-CPANModules-GetoptModules
view release on metacpan or search on metacpan
a) cause the modified files to carry prominent notices stating that
you changed the files and the date of any change; and
b) cause the whole of any work that you distribute or publish, that
in whole or in part contains the Program or any part thereof, either
with or without modifications, to be licensed at no charge to all
third parties under the terms of this General Public License (except
that you may choose to grant warranty protection to some or all
third parties, at your option).
c) If the modified program normally reads commands interactively when
run, you must cause it, when started running for such interactive use
in the simplest and most usual way, to print or display an
announcement including an appropriate copyright notice and a notice
that there is no warranty (or else, saying that you provide a
warranty) and that users may redistribute the program under these
conditions, and telling the user how to view a copy of this General
Public License.
d) You may charge a fee for the physical act of transferring a
copy, and you may at your option offer warranty protection in
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19xx name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the
appropriate parts of the General Public License. Of course, the
commands you use may be called something other than `show w' and `show
c'; they could even be mouse-clicks or menu items--whatever suits your
program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
program `Gnomovision' (a program to direct compilers to make passes
at assemblers) written by James Hacker.
{
"abstract" : "Modules that parse command-line options",
"author" : [
"perlancar <perlancar@cpan.org>"
],
"dynamic_config" : 0,
"generated_by" : "Dist::Zilla version 6.014, CPAN::Meta::Converter version 2.150010",
"license" : [
"perl_5"
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
"Getopt::Complete" : "0",
"Getopt::Declare" : "0",
"Getopt::Euclid" : "0",
"Getopt::Kingpin" : "0",
"Getopt::Long" : "0",
"Getopt::Long::Complete" : "0",
"Getopt::Long::Descriptive" : "0",
"Getopt::Long::EvenLess" : "0",
"Getopt::Long::Less" : "0",
"Getopt::Long::More" : "0",
"Getopt::Long::Subcommand" : "0",
"Getopt::Lucid" : "0",
"Getopt::Modular" : "0",
"Getopt::Simple" : "0",
"Getopt::Std" : "0",
"Getopt::Std::Strict" : "0",
"Getopt::Tiny" : "0",
"Getopt::Valid" : "0",
"MooX::Options" : "0",
"MooseX::Getopt" : "0",
"Opt::Imistic" : "0",
"class" : "Pod::Weaver::Section::Region",
"name" : "@Author::PERLANCAR/postlude",
"version" : "4.015"
},
{
"class" : "Pod::Weaver::Section::Completion::GetoptLongComplete",
"name" : "@Author::PERLANCAR/Completion::GetoptLongComplete",
"version" : "0.08"
},
{
"class" : "Pod::Weaver::Section::Completion::GetoptLongSubcommand",
"name" : "@Author::PERLANCAR/Completion::GetoptLongSubcommand",
"version" : "0.04"
},
{
"class" : "Pod::Weaver::Section::Completion::GetoptLongMore",
"name" : "@Author::PERLANCAR/Completion::GetoptLongMore",
"version" : "0.001"
},
{
"class" : "Pod::Weaver::Section::Homepage::DefaultCPAN",
"name" : "@Author::PERLANCAR/Homepage::DefaultCPAN",
---
abstract: 'Modules that parse command-line options'
author:
- 'perlancar <perlancar@cpan.org>'
build_requires:
File::Spec: '0'
IO::Handle: '0'
IPC::Open3: '0'
Test::More: '0'
configure_requires:
ExtUtils::MakeMaker: '0'
dynamic_config: 0
version: '4.015'
-
class: Pod::Weaver::Section::Region
name: '@Author::PERLANCAR/postlude'
version: '4.015'
-
class: Pod::Weaver::Section::Completion::GetoptLongComplete
name: '@Author::PERLANCAR/Completion::GetoptLongComplete'
version: '0.08'
-
class: Pod::Weaver::Section::Completion::GetoptLongSubcommand
name: '@Author::PERLANCAR/Completion::GetoptLongSubcommand'
version: '0.04'
-
class: Pod::Weaver::Section::Completion::GetoptLongMore
name: '@Author::PERLANCAR/Completion::GetoptLongMore'
version: '0.001'
-
class: Pod::Weaver::Section::Homepage::DefaultCPAN
name: '@Author::PERLANCAR/Homepage::DefaultCPAN'
version: '0.05'
-
Makefile.PL view on Meta::CPAN
# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.014.
use strict;
use warnings;
use 5.010001;
use ExtUtils::MakeMaker;
my %WriteMakefileArgs = (
"ABSTRACT" => "Modules that parse command-line options",
"AUTHOR" => "perlancar <perlancar\@cpan.org>",
"CONFIGURE_REQUIRES" => {
"ExtUtils::MakeMaker" => 0
},
"DISTNAME" => "Acme-CPANModules-GetoptModules",
"LICENSE" => "perl",
"MIN_PERL_VERSION" => "5.010001",
"NAME" => "Acme::CPANModules::GetoptModules",
"PREREQ_PM" => {
"strict" => 0,
NAME
Acme::CPANModules::GetoptModules - Modules that parse command-line
options
VERSION
This document describes version 0.001 of
Acme::CPANModules::GetoptModules (from Perl distribution
Acme-CPANModules-GetoptModules), released on 2020-04-16.
DESCRIPTION
Modules that parse command-line options.
INCLUDED MODULES
* Getopt::Std
* Getopt::Long
* Getopt::Tiny
* Getopt::Long::Descriptive
* Smart::Options
* Getopt::ArgParse
* Getopt::Kingpin
* Getopt::Complete
* Getopt::Long::Complete
* Getopt::Long::Subcommand
* Getopt::Long::Less
* Getopt::Long::EvenLess
FEATURE COMPARISON MATRIX
+---------------------------+---------------+------------------+----------------------+---------------+----------+----------------+
| module | auto_help *1) | auto_version *2) | uses_getopt_long *3) | uses_spec *4) | file *5) | subcommand *6) |
+---------------------------+---------------+------------------+----------------------+---------------+----------+----------------+
| Getopt::Std | no *7) | no *8) | no | yes | N/A | N/A |
| Getopt::Long | yes | yes | yes | yes | N/A | N/A |
| Getopt::Tiny | no | no | no | yes | N/A | N/A |
| Getopt::Long::Descriptive | yes | no | yes | yes | N/A | N/A |
| Getopt::Long::More | yes | yes | yes | yes | no | no |
| Getopt::Simple | yes | yes | yes | yes | N/A | N/A |
| Getopt::Compact | yes | yes | yes | yes | N/A | N/A |
| Opt::Imistic | no | no | no | no | N/A | N/A |
| Getopt::Valid | yes | yes | yes | yes | N/A | N/A |
| App::Options | yes | yes | no | yes | yes | N/A |
| MooseX::Getopt | yes | yes | yes *9) | yes | no *10) | N/A |
| MooX::Options | yes | no | yes *11) | yes | yes | N/A |
| Getopt::Attribute | yes | yes | yes | yes | N/A | N/A |
| Getopt::Modular | yes | yes | yes | yes | N/A | N/A |
| Smart::Options | yes | no | no | yes | yes | yes |
| Getopt::ArgParse | no | no | yes | yes | N/A | yes |
| Getopt::Kingpin | yes | yes | no | yes | N/A | yes |
| Getopt::Complete | no | no | no | yes | N/A | N/A |
| Getopt::Long::Complete | yes | yes | yes | yes | N/A | N/A |
| Getopt::Long::Subcommand | yes | yes | yes | yes | N/A | yes |
| Getopt::Long::Less | no | no | no | yes | N/A | N/A |
| Getopt::Long::EvenLess | no | no | no | yes | N/A | N/A |
+---------------------------+---------------+------------------+----------------------+---------------+----------+----------------+
Notes:
1. auto_help: Whether the module can generate automatic help message
(usually from spec) when user specifies something like --help
2. auto_version: Whether the module can generate automatic version
message when user specifies something like --version
3. uses_getopt_long: Whether module uses Getopt::Long (or is
Getopt::Long itself)
4. uses_spec: Whether user need to specify some sort of "spec" (list of
options and potentially more details)
5. file: Whether the module supports getting options from a file
6. subcommand: Whether the module supports subcommands
7. Only calls main::HELP_MESSAGE
8. Only calls main::VERSION_MESSAGE
9. Uses Getopt::Long::Descriptive
10. Needs separate module: MooseX::ConfigFromFile or
MooseX::SimpleConfig
11. Uses Getopt::Long::Descriptive
FAQ
What are ways to use this module?
Aside from reading it, you can install all the listed modules using
lib/Acme/CPANModules/GetoptModules.pm view on Meta::CPAN
our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2020-04-16'; # DATE
our $DIST = 'Acme-CPANModules-GetoptModules'; # DIST
our $VERSION = '0.001'; # VERSION
use 5.010001;
use strict;
use warnings;
our $LIST = {
summary => 'Modules that parse command-line options',
entry_features => {
uses_spec => {summary => 'Whether user need to specify some sort of "spec" (list of options and potentially more details)'},
uses_getopt_long => {summary => 'Whether module uses Getopt::Long (or is Getopt::Long itself)'},
auto_help => {summary => 'Whether the module can generate automatic help message (usually from spec) when user specifies something like --help'},
auto_version => {summary => 'Whether the module can generate automatic version message when user specifies something like --version'},
file => {summary => 'Whether the module supports getting options from a file'},
subcommand => {summary => 'Whether the module supports subcommands'},
},
entries => [
{
module => 'Getopt::Std',
features => {
uses_spec => 1,
uses_getopt_long => 0,
auto_help => {value=>0, summary=>'Only calls main::HELP_MESSAGE'},
auto_version => {value=>0, summary=>'Only calls main::VERSION_MESSAGE'},
},
lib/Acme/CPANModules/GetoptModules.pm view on Meta::CPAN
},
},
{
module => 'Getopt::Long::More',
features => {
uses_spec => 1,
uses_getopt_long => 1,
auto_help => 1,
auto_version => 1,
file => 0, # planned
subcommand => 0, # planned
},
},
{
module => 'Getopt::Simple',
features => {
uses_spec => 1,
uses_getopt_long => 1,
auto_help => 1,
auto_version => 1,
},
lib/Acme/CPANModules/GetoptModules.pm view on Meta::CPAN
},
# App::Cmd
# App::Spec
{
module => 'Smart::Options',
features => {
uses_spec => 1,
uses_getopt_long => 0,
auto_help => 1,
auto_version => 0,
subcommand => 1,
file => 1,
},
},
{
module => 'Getopt::ArgParse',
features => {
uses_spec => 1,
uses_getopt_long => 1,
auto_help => 0, #?
auto_version => 0, #?
subcommand => 1,
},
},
{
module => 'Getopt::Kingpin',
features => {
uses_spec => 1,
uses_getopt_long => 0,
auto_help => 1, #?
auto_version => 1, #?
subcommand => 1,
},
},
{
module => 'Getopt::Complete',
features => {
uses_spec => 1,
uses_getopt_long => 0,
auto_help => 0, #?
auto_version => 0, #?
},
lib/Acme/CPANModules/GetoptModules.pm view on Meta::CPAN
{
module => 'Getopt::Long::Complete',
features => {
uses_spec => 1,
uses_getopt_long => 1,
auto_help => 1,
auto_version => 1,
},
},
{
module => 'Getopt::Long::Subcommand',
features => {
uses_spec => 1,
uses_getopt_long => 1,
auto_help => 1,
auto_version => 1,
subcommand => 1,
},
},
{
module => 'Getopt::Long::Less',
features => {
uses_spec => 1,
uses_getopt_long => 0,
auto_help => 0,
auto_version => 0,
},
lib/Acme/CPANModules/GetoptModules.pm view on Meta::CPAN
},
},
# Getopt::Panjang
# Perinci::CmdLine
# ScriptX
],
};
1;
# ABSTRACT: Modules that parse command-line options
__END__
=pod
=encoding UTF-8
=head1 NAME
Acme::CPANModules::GetoptModules - Modules that parse command-line options
=head1 VERSION
This document describes version 0.001 of Acme::CPANModules::GetoptModules (from Perl distribution Acme-CPANModules-GetoptModules), released on 2020-04-16.
=head1 DESCRIPTION
Modules that parse command-line options.
=head1 INCLUDED MODULES
=over
=item * L<Getopt::Std>
=item * L<Getopt::Long>
=item * L<Getopt::Tiny>
lib/Acme/CPANModules/GetoptModules.pm view on Meta::CPAN
=item * L<Smart::Options>
=item * L<Getopt::ArgParse>
=item * L<Getopt::Kingpin>
=item * L<Getopt::Complete>
=item * L<Getopt::Long::Complete>
=item * L<Getopt::Long::Subcommand>
=item * L<Getopt::Long::Less>
=item * L<Getopt::Long::EvenLess>
=back
=head1 FEATURE COMPARISON MATRIX
+---------------------------+---------------+------------------+----------------------+---------------+----------+----------------+
| module | auto_help *1) | auto_version *2) | uses_getopt_long *3) | uses_spec *4) | file *5) | subcommand *6) |
+---------------------------+---------------+------------------+----------------------+---------------+----------+----------------+
| Getopt::Std | no *7) | no *8) | no | yes | N/A | N/A |
| Getopt::Long | yes | yes | yes | yes | N/A | N/A |
| Getopt::Tiny | no | no | no | yes | N/A | N/A |
| Getopt::Long::Descriptive | yes | no | yes | yes | N/A | N/A |
| Getopt::Long::More | yes | yes | yes | yes | no | no |
| Getopt::Simple | yes | yes | yes | yes | N/A | N/A |
| Getopt::Compact | yes | yes | yes | yes | N/A | N/A |
| Opt::Imistic | no | no | no | no | N/A | N/A |
| Getopt::Valid | yes | yes | yes | yes | N/A | N/A |
lib/Acme/CPANModules/GetoptModules.pm view on Meta::CPAN
| App::Options | yes | yes | no | yes | yes | N/A |
| MooseX::Getopt | yes | yes | yes *9) | yes | no *10) | N/A |
| MooX::Options | yes | no | yes *11) | yes | yes | N/A |
| Getopt::Attribute | yes | yes | yes | yes | N/A | N/A |
| Getopt::Modular | yes | yes | yes | yes | N/A | N/A |
| Smart::Options | yes | no | no | yes | yes | yes |
| Getopt::ArgParse | no | no | yes | yes | N/A | yes |
| Getopt::Kingpin | yes | yes | no | yes | N/A | yes |
| Getopt::Complete | no | no | no | yes | N/A | N/A |
| Getopt::Long::Complete | yes | yes | yes | yes | N/A | N/A |
| Getopt::Long::Subcommand | yes | yes | yes | yes | N/A | yes |
| Getopt::Long::Less | no | no | no | yes | N/A | N/A |
| Getopt::Long::EvenLess | no | no | no | yes | N/A | N/A |
+---------------------------+---------------+------------------+----------------------+---------------+----------+----------------+
Notes:
=over
=item 1. auto_help: Whether the module can generate automatic help message (usually from spec) when user specifies something like --help
=item 2. auto_version: Whether the module can generate automatic version message when user specifies something like --version
=item 3. uses_getopt_long: Whether module uses Getopt::Long (or is Getopt::Long itself)
=item 4. uses_spec: Whether user need to specify some sort of "spec" (list of options and potentially more details)
=item 5. file: Whether the module supports getting options from a file
=item 6. subcommand: Whether the module supports subcommands
=item 7. Only calls main::HELP_MESSAGE
=item 8. Only calls main::VERSION_MESSAGE
=item 9. Uses Getopt::Long::Descriptive
=item 10. Needs separate module: MooseX::ConfigFromFile or MooseX::SimpleConfig
=item 11. Uses Getopt::Long::Descriptive
t/00-compile.t view on Meta::CPAN
use File::Spec;
use IPC::Open3;
use IO::Handle;
open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
my @warnings;
for my $lib (@module_files)
{
# see L<perlfaq8/How can I capture STDERR from an external command?>
my $stderr = IO::Handle->new;
diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} }
$^X, @switches, '-e', "require q[$lib]"))
if $ENV{PERL_COMPILE_TEST_DEBUG};
my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]");
binmode $stderr, ':crlf' if $^O eq 'MSWin32';
my @_warnings = <$stderr>;
waitpid($pid, 0);
( run in 0.856 second using v1.01-cache-2.11-cpan-f56aa216473 )