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
view release on metacpan or search on metacpan
},
"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
view release on metacpan or search on metacpan
},
"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
view release on metacpan or search on metacpan
},
"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
view release on metacpan or search on metacpan
},
"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
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
view release on metacpan or search on metacpan
},
"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
view release on metacpan or search on metacpan
},
"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
view release on metacpan or search on metacpan
},
"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
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
view release on metacpan or search on metacpan
},
"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
view release on metacpan or search on metacpan
},
"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
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
view release on metacpan or search on metacpan
},
"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
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
view release on metacpan or search on metacpan
},
"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
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
view release on metacpan or search on metacpan
},
"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
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 "befits a ::Tiny distribution" 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
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 { ... }, "some.tar.gz");
<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><shameless plug>I'm trying to do somewhat the same with Config::Tree, but as of now the module is not really done yet.</shameless plug>
<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 "older" 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
view release on metacpan or search on metacpan
},
"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
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
view release on metacpan or search on metacpan
},
"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
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
view release on metacpan or search on metacpan
},
"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
view release on metacpan or search on metacpan
},
"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
view release on metacpan or search on metacpan
},
"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
view release on metacpan or search on metacpan
},
"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
view release on metacpan or search on metacpan
},
"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
view release on metacpan or search on metacpan
},
"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