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


Acme-CPANModules-DumpingDataForDebugging

 view release on metacpan or  search on metacpan

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

            module=>'Data::Dumper',
            tags => ['perl'],
            description => <<'_',

Everybody knows this module and it's core so sometimes it's the only appropriate
choice. However, the default setting is not really optimized for viewing by
human. I suggest you tweak these before dumping your data:

* Set $Data::Dumper::Useqq to 1.

By default, <pm:Data::Dumper> quotes strings using single-quotes and does not

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

=item L<Data::Dumper>

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

Everybody knows this module and it's core so sometimes it's the only appropriate
choice. However, the default setting is not really optimized for viewing by
human. I suggest you tweak these before dumping your data:

=over

=item * Set $Data::Dumper::Useqq to 1.

 view all matches for this distribution


Acme-CPANModules-EscapingAndQuoting

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 view all matches for this distribution


Acme-CPANModules-FireDiamond

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 view all matches for this distribution


Acme-CPANModules-FooThis

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 view all matches for this distribution


Acme-CPANModules-Foozilla

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 view all matches for this distribution


Acme-CPANModules-FormattingDate

 view release on metacpan or  search on metacpan

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

The <pm:POSIX> module provides the `strftime()` routine which lets you format
using a template string containing sprintf-style conversions like `%Y` (for
4-digit year), `%m` (2-digit month number from 1-12), and so on. There's also
<pm:Date::strftimeq> which provides an extension to this.

You can actually add some modifiers for the conversions to set
width/zero-padding/alignment, like you can do with sprintf (e.g. `%03d`
supposing you want 3-digit day of month numbers). But this feature is
platform-dependent.

**yyyy-mm-dd template**

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

The L<POSIX> module provides the C<strftime()> routine which lets you format
using a template string containing sprintf-style conversions like C<%Y> (for
4-digit year), C<%m> (2-digit month number from 1-12), and so on. There's also
L<Date::strftimeq> which provides an extension to this.

You can actually add some modifiers for the conversions to set
width/zero-padding/alignment, like you can do with sprintf (e.g. C<%03d>
supposing you want 3-digit day of month numbers). But this feature is
platform-dependent.

B<yyyy-mm-dd template>

 view all matches for this distribution


Acme-CPANModules-Frameworks

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 view all matches for this distribution


Acme-CPANModules-Getopt

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 view all matches for this distribution


Acme-CPANModules-GetoptModules

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.005"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 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

looks at `TMPDIR` environment variable before falling back to `/tmp`.
<pm:File::Temp> uses this for its `tempdir` when a template is not specified.

Then there's <pm:File::Util::Tempdir> which tries a little harder. On Unix, its
`get_tempdir` will look at `TMPDIR`, then also `TEMPDIR`, `TMP`, `TEMP`. If none
of those are set, it will return the first existing directory from the list:
`/tmp`, `/var/tmp`. If everything fails, will die.

File::Util::Tempdir also provides `get_user_tempdir` which returns a
user-private temporary directory, which can be useful if you want to create
temporary file with predetermined names. It will return temporary directory

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

looks at C<TMPDIR> environment variable before falling back to C</tmp>.
L<File::Temp> uses this for its C<tempdir> when a template is not specified.

Then there's L<File::Util::Tempdir> which tries a little harder. On Unix, its
C<get_tempdir> will look at C<TMPDIR>, then also C<TEMPDIR>, C<TMP>, C<TEMP>. If none
of those are set, it will return the first existing directory from the list:
C</tmp>, C</var/tmp>. If everything fails, will die.

File::Util::Tempdir also provides C<get_user_tempdir> which returns a
user-private temporary directory, which can be useful if you want to create
temporary file with predetermined names. It will return temporary directory

 view all matches for this distribution


Acme-CPANModules-GrepVariants

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 view all matches for this distribution


Acme-CPANModules-GroupingElementsOfArray

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 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

            },
        },

    ], # entries

    bench_datasets => [
        {name=>'tiny (1x1)'          , argv => [_make_table( 1, 1)],},
        {name=>'small (3x5)'         , argv => [_make_table( 3, 5)],},
        {name=>'wide (30x5)'         , argv => [_make_table(30, 5)],},
        {name=>'long (3x300)'        , argv => [_make_table( 3, 300)],},
        {name=>'large (30x300)'      , argv => [_make_table(30, 300)],},

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


To run module startup overhead benchmark:

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

For more options (dump scenario, list/include/exclude/add participants, list/include/exclude/add datasets, etc), see L<bencher> or run C<bencher --help>.

=head1 ACME::CPANMODULES ENTRIES

=over

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

 % bencher --cpanmodules-module HTMLTable

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

 #table1#
 {dataset=>"large (30x300)"}
 +-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
 | participant                   | rate (/s) | time (ms) | pct_faster_vs_slowest | pct_slower_vs_fastest |  errors | samples |
 +-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
 | Text::Table::Manifold         |      15.8 |     63.3  |                 0.00% |               636.27% | 4.9e-05 |      21 |
 | Text::Table::HTML             |      68   |     15    |               328.81% |                71.70% | 1.9e-05 |      21 |

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

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

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

 #table2#
 {dataset=>"long (3x300)"}
 +-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
 | participant                   | rate (/s) | time (ms) | pct_faster_vs_slowest | pct_slower_vs_fastest |  errors | samples |
 +-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
 | Text::Table::Manifold         |       129 |      7.73 |                 0.00% |               598.03% | 6.3e-06 |      21 |
 | Text::Table::HTML             |       620 |      1.6  |               378.42% |                45.90% | 1.8e-06 |      20 |

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

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

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

 #table3#
 {dataset=>"small (3x5)"}
 +-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
 | participant                   | rate (/s) | time (μs) | pct_faster_vs_slowest | pct_slower_vs_fastest |  errors | samples |
 +-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
 | Text::Table::Manifold         |      4400 |     230   |                 0.00% |               559.84% | 3.2e-07 |      23 |
 | Text::Table::HTML::DataTables |     13000 |      74   |               205.38% |               116.07% | 1.3e-07 |      30 |

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

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

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

 #table4#
 {dataset=>"tiny (1x1)"}
 +-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
 | participant                   | rate (/s) | time (μs) | pct_faster_vs_slowest | pct_slower_vs_fastest |  errors | samples |
 +-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
 | Text::Table::Manifold         |      9700 |    100    |                 0.00% |              1436.99% | 1.3e-07 |      20 |
 | Text::Table::HTML::DataTables |     18000 |     55    |                87.14% |               721.28% | 7.8e-08 |      22 |

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

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

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

 #table5#
 {dataset=>"wide (30x5)"}
 +-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
 | participant                   | rate (/s) | time (μs) | pct_faster_vs_slowest | pct_slower_vs_fastest |  errors | samples |
 +-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
 | Text::Table::Manifold         |       830 |      1200 |                 0.00% |               434.10% | 1.7e-06 |      20 |
 | Text::Table::Any              |      3390 |       295 |               307.45% |                31.08% | 1.4e-07 |      20 |

 view all matches for this distribution


Acme-CPANModules-HashData

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 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

list is organized by task.

## Creating an alias to another variable

<pm:Hash::Util>'s C<hv_store> allows you to store an alias to a variable in a
hash instead of copying the value. This means, if you set a hash value, it will
instead set the value of the aliased variable instead. Copying from Hash::Util's
documentation:

    my $sv = 0;
    hv_store(%hash,$key,$sv) or die "Failed to alias!";
    $hash{$key} = 1;

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



## Restricting keys

Perl through <pm:Hash::Util> (a core module) allows you to restrict what keys
can be set in a hash. This can be used to protect against typos and for simple
validation. (For more complex validation, e.g. allowing patterns of valid keys
and/or rejecting patterns of invalid keys, you can use the tie mechanism.)


## Reversing (inverting)

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


<pm:Hash::MoreUtil>'s `safe_reverse` allows you to specify a coderef that can
decide whether to ignore overwriting, croak, or whatever else.


## Slicing (creating subset)

<pm:Hash::MoreUtils>'s `slice_*` functions.

<pm:Hash::Subset>

<pm:Hash::Util::Pick>


## Tying

The tie mechanism, although relatively slow, allows you to create various kinds
of "magical" hash that does things whenever you get or set keys.


_
    'x.app.cpanmodules.show_entries' => 0,
};

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

list is organized by task.

=head2 Creating an alias to another variable

L<Hash::Util>'s C<hv_store> allows you to store an alias to a variable in a
hash instead of copying the value. This means, if you set a hash value, it will
instead set the value of the aliased variable instead. Copying from Hash::Util's
documentation:

 my $sv = 0;
 hv_store(%hash,$key,$sv) or die "Failed to alias!";
 $hash{$key} = 1;

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

L<Hash::WithDefault>

=head2 Restricting keys

Perl through L<Hash::Util> (a core module) allows you to restrict what keys
can be set in a hash. This can be used to protect against typos and for simple
validation. (For more complex validation, e.g. allowing patterns of valid keys
and/or rejecting patterns of invalid keys, you can use the tie mechanism.)

=head2 Reversing (inverting)

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

 %reverse = reverse %hash; # => sometimes (1=>"b"), sometimes (1=>"a")

L<Hash::MoreUtil>'s C<safe_reverse> allows you to specify a coderef that can
decide whether to ignore overwriting, croak, or whatever else.

=head2 Slicing (creating subset)

L<Hash::MoreUtils>'s C<slice_*> functions.

L<Hash::Subset>

L<Hash::Util::Pick>

=head2 Tying

The tie mechanism, although relatively slow, allows you to create various kinds
of "magical" hash that does things whenever you get or set keys.

=head1 ACME::CPANMODULES ENTRIES

=over

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


=item L<Hash::MoreUtils>

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

=item L<Hash::Subset>

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

=item L<Hash::Util::Pick>

 view all matches for this distribution


Acme-CPANModules-HaveWebsite

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 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

all core modules or all non-core modules. They also support recursive allowing,
i.e. you want to allow Moo and all the modules that Moo loads, and all the
modules that they load, and so on.

<pm:Devel::Hide>. Devel::Hide also works by installing a hook in `@INC`. It
supports propagating the hiding to child process by setting PERL5OPT environment
variable.

<pm:Test::Without::Module>.


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

all core modules or all non-core modules. They also support recursive allowing,
i.e. you want to allow Moo and all the modules that Moo loads, and all the
modules that they load, and so on.

L<Devel::Hide>. Devel::Hide also works by installing a hook in C<@INC>. It
supports propagating the hiding to child process by setting PERL5OPT environment
variable.

L<Test::Without::Module>.

B<Fooling module path finders>

 view all matches for this distribution


Acme-CPANModules-Import-CPANRatings-User-davidgaramond

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 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<Set::Scalar>

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

Confirming previous reviewer, the module is a lot slower (~ 20-40x) than other alternatives like Array::Utils or List::MoreUtils when you want to perform basic set operations like union/intersect/diff/symmetric diff.


=item L<Exporter::Easy>

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

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


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

The idea is good, but a couple of things prevents me from using this interface.
<br><br>First, the use of TryCatch (which brings the Moose ecosystem) makes the startup overhead too high for my taste (about 0.5s on my PC). Which is rather unfortunate because Date::Holidays itself does not use Moose.
<br><br>Second, the interface assumes that a country has a single set of holidays, which is too restrictive in some cases. A more flexible/general interface would allow adding more calendars based not only on country but also religion, special commun...
<br>


=item L<Furl>

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


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

Not as easy as the name might claim. First of all, why do users need to pass B<LINE> explicitly for every call??? Other logging modules will get this information automatically via caller(). 
<br><br>Levels are a bit confusing: why is debug split to 2 (or 3)? 
<br><br>Not as flexible as it should be because the design conflates some things together. For example, most levels output to STDERR but some level (VERBOSE) outputs to STDOUT instead. The output concern and levels should've been separated. Another e...


Rating: 4/10

=item L<File::Slurper>

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

=item L<File::ReadBackwards>

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

At the time of this review, I find two modules for reading a file backwards: File::Bidirectional (FBidi) and File::ReadBackwards (FRB).
<br><br>Both modules have roughly the same footprint and minimal dependencies. Both provide OO as well as tie interface. Both respect the $/ setting.
<br><br>FRB pro's:
<br>
- FRB is 15-20% faster than FBidi when reading backwards;
<br><br>FRB con's:
<br>

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

=item L<File::Bidirectional>

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

At the time of this review, I find two modules for reading a file backwards: File::Bidirectional (FBidi) and File::ReadBackwards (FRB).
<br><br>Both modules have roughly the same footprint and minimal dependencies. Both provide OO as well as tie interface. Both respect the $/ setting.
<br><br>FBidi pro's:
<br>
- has the unique feature of reading backward/forward and switch direction in the middle;
<br><br>FBidi con's:
<br>

 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


I would personally pick a non-OO, no-nonsense interface based on File::Find, like:
<br><br>use File::Find::Archive qw(find); # or find_archive
<br>
find(sub { ... }, &quot;some.tar.gz&quot;);
<br><br>instead of the multiline, tedious setup just to search a file.
<br>


=item L<App::DBBrowser>

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

A nice, minimalistic, terminal-based user interface for browsing your database and tables. Might be useful for simple cases.
<br><br>It would be I<much> more useful if usernames/passwords, queries, and other settings can be saved in a config/session file.
<br>


=item L<Locale::Maketext>

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

<br>


=item L<App::YTDL>

This module is based on WWW::YouTube::Download but its documentation does not yet explain how it differs from WWW::YouTube::Download. From what I see at a glance, App::YTDL supports downloading a video from a playlist and setting download speed limit...
<br>


=item L<Data::CompactDump>

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.

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

{
<br><br>no tainting;
<br><br>... code is running without taint mode ...
<br>
}
<br><br>No functions, no variables to set, no exports. Tainting of %ENV etc should be done automatically just like -T.
<br><br>EDIT: I wrote tainting and uploaded it to CPAN as proof of concept.


Rating: 8/10

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<Exporter::Lite>

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

2011-10-04: I am now using Exporter::Lite exclusively instead of Exporter. Got bit once by Exporter when using for an OO module due to clash of assigning to @ISA vs 'use base'. +1 for putting it into core.
<br><br>EDIT 2012-08-08: Nowadays I revert back to Exporter most of the time because Exporter is core. To avoid @ISA issue, one simply needs to import import() instead setting @ISA:
<br><br>use Exporter qw(import);
<br>


=item L<YAML::Syck>

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


=item L<Mail::Sendmail>

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

I used Mail::Sendmail and a few others &quot;older&quot; modules back from the days when it didn't support setting envelope sender different from RFC From, and when the test hung on some dead host.
<br><br>If it's still working for you, great. I personally have moved on to other modules like Email::Sender::Simple, which abstracts sending mechanism (transport) and support SMTP auth, for two. Also, many of the guide/documentation for Mail::Sendma...


Rating: 6/10

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

=item L<Config::IniFiles>

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

This module has been developed for more than a decade and seen different maintainers over the years. The codebase is indeed showing these, with different capitalization and indentation styles, among other things.
<br><br>However, among more than a dozen or so of INI modules in CPAN, ironically there seems to be few other choices if you go beyond the most basic feature set. Some INI modules can only simplistically rewrite/dump the whole INI structure and thus ...
<br><br>Config::IniFiles by far offers the most options and features, like dealing with line continuation, case sensitivity, default section, multiline/array, deltas, etc. So for now, despite all of its quirks, this module is still hard to beat.
<br><br>There's another nice little INI module that can do read/set/delete/unset (instead of just read/dump): Prima::IniFile, but it is included in a totally unrelated distribution.


Rating: 8/10

=item L<DateTime>

 view all matches for this distribution


Acme-CPANModules-InfoFromCPANTesters

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 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

our $LIST = {
    summary => "List of interesting uses of the tie() interface",
    description => <<'MARKDOWN',

The perl's tie interface allows you to create "magical" scalar, array, hash, or
filehandle. When you read or set the value of these variables, various things
can be triggered.

This <pm:Acme::CPANModules> list catalogs some of the interesting uses of the
tie() interface.

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

This document describes version 0.001 of Acme::CPANModules::InterestingTies (from Perl distribution Acme-CPANModules-InterestingTies), released on 2023-10-31.

=head1 DESCRIPTION

The perl's tie interface allows you to create "magical" scalar, array, hash, or
filehandle. When you read or set the value of these variables, various things
can be triggered.

This L<Acme::CPANModules> list catalogs some of the interesting uses of the
tie() interface.

 view all matches for this distribution


Acme-CPANModules-Interop-Ruby

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 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

for CSV replacement.

Perl moduless: <pm:JSON::Lines>.


9) **YAML**. <https://yaml.org/>. YAML is a superset of JSON. It allows for
indentation-based syntax and various features like references, heredocs, etc.

Perl modules: <pm:YAML>, <pm:YAML::PP>, among others.


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

must be UTF-8. Convention for line-oriented processing which support JSON. E.g.
for CSV replacement.

Perl moduless: L<JSON::Lines>.

9) B<YAML>. L<https://yaml.org/>. YAML is a superset of JSON. It allows for
indentation-based syntax and various features like references, heredocs, etc.

Perl modules: L<YAML>, L<YAML::PP>, among others.

=head1 ACME::CPANMODULES ENTRIES

 view all matches for this distribution


Acme-CPANModules-KitchenSinks

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 view all matches for this distribution


Acme-CPANModules-LanguageCodes

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 view all matches for this distribution


Acme-CPANModules-ListsOfWordsAndNames

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 view all matches for this distribution


Acme-CPANModules-LoadingModules

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 view all matches for this distribution


Acme-CPANModules-LocalCPANIndex

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 view all matches for this distribution


Acme-CPANModules-LocalCPANMirror

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            },
            "name" : "@Author::PERLANCAR/Test::Compile",
            "version" : "2.058"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Perl::Critic::Subset",
            "config" : {
               "Dist::Zilla::Plugin::Test::Perl::Critic::Subset" : {
                  "finder" : [
                     ":ExecFiles",
                     ":InstallModules",
                     ":TestFiles"
                  ]
               }
            },
            "name" : "@Author::PERLANCAR/Test::Perl::Critic::Subset",
            "version" : "3.001.006"
         },
         {
            "class" : "Dist::Zilla::Plugin::Test::Rinci",
            "name" : "@Author::PERLANCAR/Test::Rinci",

 view all matches for this distribution


( run in 0.994 second using v1.01-cache-2.11-cpan-49f99fa48dc )