Result:
found more than 468 distributions - search limited to the first 2001 files matching your query ( run in 1.781 )


Acme-CPANModules-Frameworks

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/Frameworks.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::Frameworks -E'say $_->{module} for @{ $Acme::CPANModules::Frameworks::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-Getopt

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/Getopt.pm  view on Meta::CPAN

use 5.010001;
use strict;
use warnings;

our $LIST = {
    summary => 'List of 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 => {

lib/Acme/CPANModules/Getopt.pm  view on Meta::CPAN

                uses_spec => 1,
                uses_getopt_long => 1,
                auto_help => 1,
                auto_version => 1,
                file => 0, # planned
                subcommand => 0, # planned
            },
        },
        {
            module => 'Getopt::Simple',
            features => {

lib/Acme/CPANModules/Getopt.pm  view on Meta::CPAN

            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 => {

lib/Acme/CPANModules/Getopt.pm  view on Meta::CPAN

                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 => {

lib/Acme/CPANModules/Getopt.pm  view on Meta::CPAN

    ],

};

1;
# ABSTRACT: List of modules that parse command-line options

__END__

=pod

=encoding UTF-8

=head1 NAME

Acme::CPANModules::Getopt - List of modules that parse command-line options

=head1 VERSION

This document describes version 0.003 of Acme::CPANModules::Getopt (from Perl distribution Acme-CPANModules-Getopt), released on 2023-10-29.

lib/Acme/CPANModules/Getopt.pm  view on Meta::CPAN


=item L<Getopt::Long::Complete>

Author: L<PERLANCAR|https://metacpan.org/author/PERLANCAR>

=item L<Getopt::Long::Subcommand>

Author: L<PERLANCAR|https://metacpan.org/author/PERLANCAR>

=item L<Getopt::Long::Less>

lib/Acme/CPANModules/Getopt.pm  view on Meta::CPAN

=back

=head1 ACME::CPANMODULES 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            |

lib/Acme/CPANModules/Getopt.pm  view on Meta::CPAN

 | 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            |
 +---------------------------+---------------+------------------+----------------------+---------------+----------+----------------+


lib/Acme/CPANModules/Getopt.pm  view on Meta::CPAN


=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

lib/Acme/CPANModules/Getopt.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::Getopt -E'say $_->{module} for @{ $Acme::CPANModules::Getopt::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-GetoptModules

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/GetoptModules.pm  view on Meta::CPAN

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 => {

lib/Acme/CPANModules/GetoptModules.pm  view on Meta::CPAN

                uses_spec => 1,
                uses_getopt_long => 1,
                auto_help => 1,
                auto_version => 1,
                file => 0, # planned
                subcommand => 0, # planned
            },
        },
        {
            module => 'Getopt::Simple',
            features => {

lib/Acme/CPANModules/GetoptModules.pm  view on Meta::CPAN

            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 => {

lib/Acme/CPANModules/GetoptModules.pm  view on Meta::CPAN

                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 => {

lib/Acme/CPANModules/GetoptModules.pm  view on Meta::CPAN

    ],

};

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

lib/Acme/CPANModules/GetoptModules.pm  view on Meta::CPAN


=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            |

lib/Acme/CPANModules/GetoptModules.pm  view on Meta::CPAN

 | 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            |
 +---------------------------+---------------+------------------+----------------------+---------------+----------+----------------+


lib/Acme/CPANModules/GetoptModules.pm  view on Meta::CPAN


=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

 view all matches for this distribution


Acme-CPANModules-GettingTempDir

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/GettingTempDir.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::GettingTempDir -E'say $_->{module} for @{ $Acme::CPANModules::GettingTempDir::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-GrepVariants

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/GrepVariants.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::GrepVariants -E'say $_->{module} for @{ $Acme::CPANModules::GrepVariants::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-GroupingElementsOfArray

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/GroupingElementsOfArray.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::GroupingElementsOfArray -E'say $_->{module} for @{ $Acme::CPANModules::GroupingElementsOfArray::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-HTMLTable

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/HTMLTable.pm  view on Meta::CPAN


=head2 Sample benchmark #1

Run on: perl: I<< v5.38.0 >>, CPU: I<< Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (2 cores) >>, OS: I<< GNU/Linux Ubuntu version 20.04 >>, OS kernel: I<< Linux version 5.4.0-164-generic >>.

Benchmark command (default options):

 % bencher --cpanmodules-module HTMLTable

Result formatted as table (split, part 1 of 5):

lib/Acme/CPANModules/HTMLTable.pm  view on Meta::CPAN

   TTH:D: participant=Text::Table::HTML::DataTables


=head2 Sample benchmark #2

Benchmark command (benchmarking module startup overhead):

 % bencher --cpanmodules-module HTMLTable --module-startup

Result formatted as table:

lib/Acme/CPANModules/HTMLTable.pm  view on Meta::CPAN

the L<bencher> CLI (from L<Bencher> distribution):

    % bencher --cpanmodules-module HTMLTable

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-HashData

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/HashData.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::HashData -E'say $_->{module} for @{ $Acme::CPANModules::HashData::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-HashUtilities

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/HashUtilities.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::HashUtilities -E'say $_->{module} for @{ $Acme::CPANModules::HashUtilities::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-HaveWebsite

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/HaveWebsite.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::HaveWebsite -E'say $_->{module} for @{ $Acme::CPANModules::HaveWebsite::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-HidingModules

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/HidingModules.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::HidingModules -E'say $_->{module} for @{ $Acme::CPANModules::HidingModules::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-Import-CPANRatings-User-davidgaramond

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/Import/CPANRatings/User/davidgaramond.pm  view on Meta::CPAN

our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2023-10-29'; # DATE
our $DIST = 'Acme-CPANModules-Import-CPANRatings-User-davidgaramond'; # DIST
our $VERSION = '0.002'; # VERSION

our $LIST = {description=>"This list is generated by scraping CPANRatings (cpanratings.perl.org) user page.",entries=>[{description=>"\nOk, it's not 2004 anymore, I suggest we retire or start to deprecate this module? This module now requires Perl 5....

1;
# ABSTRACT: List of modules mentioned by CPANRatings user davidgaramond

__END__

lib/Acme/CPANModules/Import/CPANRatings/User/davidgaramond.pm  view on Meta::CPAN


=item L<File::Size>

Author: L<OFER|https://metacpan.org/author/OFER>

Frankly I prefer the name and interface of Filesys::DiskUsage. Sadly, despite the docs mentioning &quot;blocks&quot;, this module doesn't really count block usage like the Unix &quot;du&quot; command, because it doesn't take multiple hard links into ...
<br><br>Even more sadly, Filesys::DiskUsage doesn't either.
<br><br>I guess I'll have to do with 'system &quot;du $file&quot;' command for now.
<br>


Rating: 4/10

lib/Acme/CPANModules/Import/CPANRatings/User/davidgaramond.pm  view on Meta::CPAN


=item L<Carp::Always>

Author: L<FERREIRA|https://metacpan.org/author/FERREIRA>

Modules like this deserve to be more well-known and should perhaps included in core Perl (or even become a command-line switch). I'm never comfortable with Carp and all the &quot;complexity&quot; of using it. What I wanted is simple, when debugging I...
<br><br>Call me inflicted with Ruby- or Python-envy, but it's been so ridiculous wanting to print out stack traces in Perl. I don't want to have to change/rewrite all my die()'s to croak() or confess()! And what about library codes which use die()?
<br><br>Thank God somebody wrote Carp::Always.


=item L<Data::Dump>

lib/Acme/CPANModules/Import/CPANRatings/User/davidgaramond.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::Import::CPANRatings::User::davidgaramond -E'say $_->{module} for @{ $Acme::CPANModules::Import::CPANRatings::User::davidgaramond::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-Import-CPANRatings-User-perlancar

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm  view on Meta::CPAN

our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2023-10-29'; # DATE
our $DIST = 'Acme-CPANModules-Import-CPANRatings-User-perlancar'; # DIST
our $VERSION = '0.002'; # VERSION

our $LIST = {description=>"This list is generated by scraping CPANRatings (cpanratings.perl.org) user page.",entries=>[{description=>"\nI'm not sure this really &quot;befits a ::Tiny distribution&quot; just because it's a thin wrapper of something. P...

1;
# ABSTRACT: List of modules mentioned by CPANRatings user perlancar

__END__

lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm  view on Meta::CPAN


=item L<Log::Declare>

Author: L<CHGOVUK|https://metacpan.org/author/CHGOVUK>

I haven't used or evaluated this module in detail, but if there is one advantage to using procedural/command syntax:
<br><br>info blah;
<br><br>as opposed to object syntax:
<br><br>$log-&gt;info(blah);
<br><br>then this module clearly demonstrates it. Using Devel::Declare (or the Perl 5.14+ keyword API), the former can be easily rewritten as something like:
<br><br>info &amp;&amp; blah;

lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::Import::CPANRatings::User::perlancar -E'say $_->{module} for @{ $Acme::CPANModules::Import::CPANRatings::User::perlancar::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-Import-CPANRatings-User-stevenharyanto

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN

our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2023-10-29'; # DATE
our $DIST = 'Acme-CPANModules-Import-CPANRatings-User-stevenharyanto'; # DIST
our $VERSION = '0.002'; # VERSION

our $LIST = {description=>"This list is generated by scraping CPANRatings (cpanratings.perl.org) user page.",entries=>[{description=>"\n(REMOVED)\n",module=>"Log::Any",rating=>undef},{description=>"\nProvides a thin/lightweight OO interface for \$?, ...

1;
# ABSTRACT: List of modules mentioned by CPANRatings user stevenharyanto

__END__

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN



=item L<App::multiwhich>

Note that File::Which can also search for all matches too if you use it in a list context, e.g. @paths = which('foo'). File::Which also comes with a pwhich CLI utility which also accepts multiple arguments and has the -a switch to print all matches. ...
<br><br>In fact, the Unix 'which' command (or at least its Debian variant) also sports the -a switch.


=item L<Object::Anon>

Author: L<ROBN|https://metacpan.org/author/ROBN>

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN

=item L<Getopt::Long>

Author: L<JV|https://metacpan.org/author/JV>

Having worked for quite some time with option processing and several other similar modules, I have to say that most of the time you probably want to use Getopt::Long instead of the other alternatives. Or at least pick the alternatives which are based...
<br><br>Most other modules that reinvent option parsing either don't bother to do short option bundling (-abc instead of -a -b -c), or abbreviation (--long-o instead --long-option-name), or the choice to (dis)allow mix-mashing options and arguments, ...
<br>


=item L<Text::Table::Tiny>

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN


=item L<App::whatthecommit>

Author: L<MUDLER|https://metacpan.org/author/MUDLER>

From the description: &quot;App::whatthecommit is just another lazy-to-lazy line command utility.&quot; I'd thought the definition of laziness would be something like 'alias gc=git commit --allow-empty-message'. This is more like hubris. Or whatever....
<br>


=item L<Opt::Imistic>

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN


=item L<Devel::TraceSubs>

Author: L<PARTICLE|https://metacpan.org/author/PARTICLE>

For an alternative, try Debug::LTrace, which roughly provides the same basic feature but is more convenient to use from the command-line and give extra information like timing.
<br><br>


=item L<Devel::TraceCalls>

Author: L<COSIMO|https://metacpan.org/author/COSIMO>

Might be powerful and flexible, but not convenient to use especially from command-line. (I was searching for something like &quot;strace for Perl function&quot;).
<br>


=item L<Debug::LTrace>

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN

=item L<IPC::System::Simple>

Author: L<JKEENAN|https://metacpan.org/author/JKEENAN>

This is a well-designed module with a good interface. The core system()'s behavior of whether to invoke shell or not depending on the number of arguments is ... unfortunate. This module fixes that.
<br><br>However, the previous review's comparing of IPC::System::Simple with IPC::Run or IPC::Simple is rather misguided. They focus on different things: IPC::System::Simple focuses on providing shell/no-shell versions of invoking commands and making...


=item L<IPC::Cmd>

Author: L<BINGOS|https://metacpan.org/author/BINGOS>

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN


=item L<Dist::Zilla::Shell>

Author: L<DOLMEN|https://metacpan.org/author/DOLMEN>

Nice tool that lets you type dzil commands like 'build', 'test', etc while sending all the other unknown commands like 'ls -l', 'man Foo' to the underlying shell. Also lets you avoid multiple startup overhead of dzil :-)


=item L<CPANPLUS::Shell::Curses>

Author: L<MARCUS|https://metacpan.org/author/MARCUS>

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN

=item L<App::Options>

Author: L<SPADKINS|https://metacpan.org/author/SPADKINS>

2010-10-13:
<br><br>I admit, this is not the most flexible configuration framework out there as it enforces some convention. And I don't/can't use it on every project. But it's certainly one of the easiest. You can slap a few lines of options declaration in your...
<br><br>There are still a few annoyances (I submitted them in the RT), but in general, this is a very handy module to use for lazy coders who just want to accept configuration/options from outside the code.
<br><br>&lt;shameless plug&gt;I'm trying to do somewhat the same with Config::Tree, but as of now the module is not really done yet.&lt;/shameless plug&gt;
<br><br>UPDATE 2013-08-15:
<br><br>I'm reducing the ratings from 5 to 2. I've now avoided using this module due to two lingering issue since 2010: 1) App::Options does not accept '--opt val', only '--opt=val' which is incompatible with how most command-line programs work, caus...
<br><br>I'm now using Perinci::CmdLine as replacement, but I cannot recommend it in general, as the two modules are not equivalent.


Rating: 4/10

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN


=item L<WWW::YouTube::Download>

Author: L<OALDERS|https://metacpan.org/author/OALDERS>

Works for me too ATM. I've tried several command-line scripts (most of them Python-based, like youtube-dl, tubenick, etc). Sometimes they work, sometimes they broke. It's the nature of this kind of script. The quality comes from persistence. This mod...


=item L<Number::Zero>

From the module's POD: &quot;The number zero and undef are difficult to determine in Perl.&quot;

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN


=item L<Oktest>

Author: L<KWATCH|https://metacpan.org/author/KWATCH>

A reinvention of Perl testing modules (it even comes with an equivalent for 'prove' command), with probably no added features and some added quirks. (Nested) topic can already be done using Test::More's subtests. Filtering and setup/teardown can be d...
<br>


Rating: 4/10

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN


=item L<Perl::Strip>

Author: L<MLEHMANN|https://metacpan.org/author/MLEHMANN>

Balancing previous unhelpful review. Slowish (can't complain, PPI-based) but works and comes with a command-line utility.
<br><br>Beware though that the command-line utility modifies file in place without backup, without warning, and without option to create backup.
<br>


Rating: 8/10

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN

=item L<CHI>

Author: L<ASB|https://metacpan.org/author/ASB>

The DBI of caching. Stop reinventing your caching framework and just use this.
<br><br>UPDATE 2013-01-16: unfortunately, the use of Moose reduces the usefulness of CHI for command-line scripts (0.2s/146 files/53k lines startup overhead just to initialize a File cache). So 4 stars instead of 5. Let's hope the author migrates to ...
<br>


Rating: 8/10

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN

I personally don't see much value of this syntactic sugar since Perl already allows us to express clearly. Pick one:
<br><br>for ($foo) { say $_ if defined }
<br><br>for (grep {defined} $foo) { say $_ }
<br><br>do { say $_ if defined } for $foo
<br><br>say $_ for grep {defined} $foo
<br><br>And save yourself from having to remember whether we should add a comma or not before &quot;wherever&quot;.
<br>


=item L<TOBYINK::PerlX::A>

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN


Author: L<STRZELEC|https://metacpan.org/author/STRZELEC>

No tests. No detailed error status, only true/false (yes, there is a 'warnings' parameter on constructor, but this doesn't give out warnings on all operations, only some). No locking (although there is backup, but still).
<br><br>Also, some weird choices, why use bzip2 when creating backup? Or, why still require running as root (checking $() if we are allowing custom database file location?
<br><br>Between this and Unix::ConfigFile, I'm seriously considering using Unix commands instead (useradd, userdel, gpasswd, et al).
<br><br>UPDATE 2011-04-21: I created a fork of Passwd::Unix 0.52 called Passwd::Unix::Alt instead, which add some tests and modifications. Try it out if your needs are also not met by Passwd::Unix.
<br><br>UPDATE 2012-08-30: I created a new module called Unix::Passwd::File. Try it out if your needs are also not met by Passwd::Unix.


Rating: 2/10

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN


=item L<Module::CoreList>

Author: L<BINGOS|https://metacpan.org/author/BINGOS>

Wow, I was thinking the same exact &quot;godsend&quot; too and turns out some other reviewer already said so. Very very helpful to assist deployment and pick modules to use. I personally made a couple of command-line scripts like pm-in-core or core-s...
<br>


=item L<WWW::Mechanize>

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN


=item L<File::Which>

Author: L<PLICEASE|https://metacpan.org/author/PLICEASE>

You can always count on CPAN to have prewritten modules for various things, including this one. I've never bothered before about portability and just rely on the &quot;which&quot; command, but for one reason there's a time when I just couldn't do tha...
<br><br>Btw, there's also File::Which::Cached.


=item L<String::ShellQuote>

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::Import::CPANRatings::User::stevenharyanto -E'say $_->{module} for @{ $Acme::CPANModules::Import::CPANRatings::User::stevenharyanto::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-InfoFromCPANTesters

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/InfoFromCPANTesters.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::InfoFromCPANTesters -E'say $_->{module} for @{ $Acme::CPANModules::InfoFromCPANTesters::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-InterestingTies

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/InterestingTies.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::InterestingTies -E'say $_->{module} for @{ $Acme::CPANModules::InterestingTies::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-Interop-Ruby

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/Interop/Ruby.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::Interop::Ruby -E'say $_->{module} for @{ $Acme::CPANModules::Interop::Ruby::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-JSONVariants

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/JSONVariants.pm  view on Meta::CPAN

my $text = <<'MARKDOWN';
JSON is hugely popular, yet very simple. This has led to various extensions or
variants of JSON.

An overwhelmingly popular extension is comments, because JSON is used a lot in
configuration. Another popular extension is dangling (trailing) comma.

This list catalogs the various JSON variants which have a Perl implementation on
CPAN.


1) **JSON5**. <https://json5.org/>, "JSON for Humans". Allowing more
whitespaces, single-line comment (C++-style), multiline comment (C-style),
single quote for strings, hexadecimal number literal (e.g. 0x123abc), leading
decimal point, trailing decimal point, positive sign in number, trailing commas.

Perl modules: <pm:JSON5>, <pm:File::Serialize::Serializer::JSON5>.


2) **HJSON**. <https://hjson.org>, Human JSON. A JSON variant that aims to be
more user-friendly by allowing comments, unquoted keys, and optional commas.
It's designed to be easier to read and write by humans.

Perl modules: (none so far).


lib/Acme/CPANModules/JSONVariants.pm  view on Meta::CPAN



5) **CSON**. <https://github.com/bevry/cson>. CofeeScript Object Notation.
JSON-like data serialization format inspired by CoffeeScript syntax. It allows
for a more concise representation of data by leveraging CoffeeScript's features
such as significant whitespace and optional commas.

Perl modules: (none so far).


6) **RJSON**. <https://relaxedjson.org/>. Relaxed JSON. Trailing commas,
Optional commas, comments (C-style and C++-style), single-quoted &
backtick-quoted strings as well as bare/unquoted, hash key without value (value
will default to `undef`). It touts itself as "going beyond other JSON variants,
including JSON5."

Perl modules: <pm:JSON::Relaxed>.


7) **<pm:JSON::Diffable>**. Basically just allowing for trailing commas.


8) **JSONLines**. <https://jsonlines.org>. A more restrictive JSON format, all
JSON records must fit in one line as newline is the record delimiter. Encoding
must be UTF-8. Convention for line-oriented processing which support JSON. E.g.

lib/Acme/CPANModules/JSONVariants.pm  view on Meta::CPAN


JSON is hugely popular, yet very simple. This has led to various extensions or
variants of JSON.

An overwhelmingly popular extension is comments, because JSON is used a lot in
configuration. Another popular extension is dangling (trailing) comma.

This list catalogs the various JSON variants which have a Perl implementation on
CPAN.

1) B<JSON5>. L<https://json5.org/>, "JSON for Humans". Allowing more
whitespaces, single-line comment (C++-style), multiline comment (C-style),
single quote for strings, hexadecimal number literal (e.g. 0x123abc), leading
decimal point, trailing decimal point, positive sign in number, trailing commas.

Perl modules: L<JSON5>, L<File::Serialize::Serializer::JSON5>.

2) B<HJSON>. L<https://hjson.org>, Human JSON. A JSON variant that aims to be
more user-friendly by allowing comments, unquoted keys, and optional commas.
It's designed to be easier to read and write by humans.

Perl modules: (none so far).

3) B<JSONC>. L<https://github.com/komkom/jsonc>. JSON with Comments. Also allows

lib/Acme/CPANModules/JSONVariants.pm  view on Meta::CPAN

Perl modules: (none so far).

5) B<CSON>. L<https://github.com/bevry/cson>. CofeeScript Object Notation.
JSON-like data serialization format inspired by CoffeeScript syntax. It allows
for a more concise representation of data by leveraging CoffeeScript's features
such as significant whitespace and optional commas.

Perl modules: (none so far).

6) B<RJSON>. L<https://relaxedjson.org/>. Relaxed JSON. Trailing commas,
Optional commas, comments (C-style and C++-style), single-quoted &
backtick-quoted strings as well as bare/unquoted, hash key without value (value
will default to C<undef>). It touts itself as "going beyond other JSON variants,
including JSON5."

Perl modules: L<JSON::Relaxed>.

7) B<< L<JSON::Diffable> >>. Basically just allowing for trailing commas.

8) B<JSONLines>. L<https://jsonlines.org>. A more restrictive JSON format, all
JSON records must fit in one line as newline is the record delimiter. Encoding
must be UTF-8. Convention for line-oriented processing which support JSON. E.g.
for CSV replacement.

lib/Acme/CPANModules/JSONVariants.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::JSONVariants -E'say $_->{module} for @{ $Acme::CPANModules::JSONVariants::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-KitchenSinks

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/KitchenSinks.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::KitchenSinks -E'say $_->{module} for @{ $Acme::CPANModules::KitchenSinks::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-LanguageCodes

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/LanguageCodes.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::LanguageCodes -E'say $_->{module} for @{ $Acme::CPANModules::LanguageCodes::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-ListsOfWordsAndNames

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/ListsOfWordsAndNames.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::ListsOfWordsAndNames -E'say $_->{module} for @{ $Acme::CPANModules::ListsOfWordsAndNames::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-LoadingModules

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/LoadingModules.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::LoadingModules -E'say $_->{module} for @{ $Acme::CPANModules::LoadingModules::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-LocalCPANIndex

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/LocalCPANIndex.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::LocalCPANIndex -E'say $_->{module} for @{ $Acme::CPANModules::LocalCPANIndex::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-LocalCPANMirror

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/LocalCPANMirror.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::LocalCPANMirror -E'say $_->{module} for @{ $Acme::CPANModules::LocalCPANMirror::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-Locale-ID

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/Locale/ID.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::Locale::ID -E'say $_->{module} for @{ $Acme::CPANModules::Locale::ID::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-LoremIpsum

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/LoremIpsum.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::LoremIpsum -E'say $_->{module} for @{ $Acme::CPANModules::LoremIpsum::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-MIMETypes

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/MIMETypes.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::MIMETypes -E'say $_->{module} for @{ $Acme::CPANModules::MIMETypes::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-MagicVariableTechnique

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/MagicVariableTechnique.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::MagicVariableTechnique -E'say $_->{module} for @{ $Acme::CPANModules::MagicVariableTechnique::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-ManagingMultipleRepositories

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/ManagingMultipleRepositories.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::ManagingMultipleRepositories -E'say $_->{module} for @{ $Acme::CPANModules::ManagingMultipleRepositories::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


Acme-CPANModules-MatchingString

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/MatchingString.pm  view on Meta::CPAN

or directly:

    % perl -MAcme::CPANModules::MatchingString -E'say $_->{module} for @{ $Acme::CPANModules::MatchingString::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

 view all matches for this distribution


( run in 1.781 second using v1.01-cache-2.11-cpan-f56aa216473 )