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


Acme-CPANModules-QuickGraph

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-QuickGraph>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-RandomData

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-RandomData>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-RandomPassword

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-RandomPassword>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-RandomPerson

 view release on metacpan or  search on metacpan

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


Source repository is at L<https://github.com/perlancar/perl-Acme-CPANModules-RandomPerson>.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-RandomPerson>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=head1 SEE ALSO

L<Acme::CPANModules::RandomData>

 view all matches for this distribution


Acme-CPANModules-RandomText

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-RandomText>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-ReadingFilesBackward

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-ReadingFilesBackward>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-RemovingElementsFromArray

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-RemovingElementsFromArray>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-RenamingFiles

 view release on metacpan or  search on metacpan

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

by Robin Barker (since 2005), and <pm:App::FileTools::BulkRename> by Stirling
Westrup (since 2010).

<prog:rename> by Peder Stray (you might have difficulty installing the archive
using CPAN client since it does not include a module) is based on Larry Wall's
`rename` script and has grown to feature dry-run mode, backup, interactive
prompt, etc.

<prog:rename> from <pm:File::Rename> by Robin Barker is also based on Larry
Wall's script and refactors the functionality into a module. It does not have as
many options as Peder's version but offers a Unicode option.

<prog:brn> from <pm:App::FileTools::BulkRename> (since 2010) by Stirling
Westrup. Another fork of Larry Wall's `rename`. It features dry-run mode
(`--nop`) and saving/loading presets of options (including the Perl expression)
into its config file.

<prog:perlmv> from <pm:App::perlmv> (since 2010) is my take in this space. I
wanted to reuse my rename one-liners so I made a "scriptlet" feature which you
can save and run using the script (`brn` also does this, in the form of
presets). `perlmv` features dry-run mode, recursive renaming, reverse ordering
(to work around issue like wanting to rename files named 1, 2, 3, ... to 2, 3,
4, ...). The distribution also comes with sister scripts <prog:perlln>,
<prog:perlln_s>, and <prog:perlcp>.

<prog:perlmv-u> from <pm:App::perlmv> (since 2017) is my other take. The main
feature is undo. It does not yet has nearly as many features as its older
brother `perlmv`.

<prog:pmv> from <pm:File::PerlMove> (since 2007) by Johan Vromans of
`Getopt::Long` fame. Like `File::Rename`, it also refactors the logic into
module. It also added a DWIM for specific Perl expression like `uc`, `lc` when

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

by Robin Barker (since 2005), and L<App::FileTools::BulkRename> by Stirling
Westrup (since 2010).

L<rename> by Peder Stray (you might have difficulty installing the archive
using CPAN client since it does not include a module) is based on Larry Wall's
C<rename> script and has grown to feature dry-run mode, backup, interactive
prompt, etc.

L<rename> from L<File::Rename> by Robin Barker is also based on Larry
Wall's script and refactors the functionality into a module. It does not have as
many options as Peder's version but offers a Unicode option.

L<brn> from L<App::FileTools::BulkRename> (since 2010) by Stirling
Westrup. Another fork of Larry Wall's C<rename>. It features dry-run mode
(C<--nop>) and saving/loading presets of options (including the Perl expression)
into its config file.

L<perlmv> from L<App::perlmv> (since 2010) is my take in this space. I
wanted to reuse my rename one-liners so I made a "scriptlet" feature which you
can save and run using the script (C<brn> also does this, in the form of
presets). C<perlmv> features dry-run mode, recursive renaming, reverse ordering
(to work around issue like wanting to rename files named 1, 2, 3, ... to 2, 3,
4, ...). The distribution also comes with sister scripts L<perlln>,
L<perlln_s>, and L<perlcp>.

L<perlmv-u> from L<App::perlmv> (since 2017) is my other take. The main
feature is undo. It does not yet has nearly as many features as its older
brother C<perlmv>.

L<pmv> from L<File::PerlMove> (since 2007) by Johan Vromans of
C<Getopt::Long> fame. Like C<File::Rename>, it also refactors the logic into
module. It also added a DWIM for specific Perl expression like C<uc>, C<lc> when

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-RenamingFiles>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-RequireHooks

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-RequireHooks>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-Roles

 view release on metacpan or  search on metacpan

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

`around`).

<pm:Moo::Role>. Based on Role::Tiny, it adds attribute support. Suitable if you
use <pm:Moo> as your object system.

<pm:Role::Basic>. Despite having less features than Role::Tiny (no method
modifiers), Role::Basic starts a bit slower because it loads some more modules.

<pm:Mouse::Role>. Suitable only if you are already using <pm:Mouse> as your
object system.

<pm:Moose::Role>. Offers the most features (particularly the meta protocol), but
also the heaviest. Suitable only if you are already using <pm:Moose> as your
object system.
_
};

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

C<around>).

L<Moo::Role>. Based on Role::Tiny, it adds attribute support. Suitable if you
use L<Moo> as your object system.

L<Role::Basic>. Despite having less features than Role::Tiny (no method
modifiers), Role::Basic starts a bit slower because it loads some more modules.

L<Mouse::Role>. Suitable only if you are already using L<Mouse> as your
object system.

L<Moose::Role>. Offers the most features (particularly the meta protocol), but
also the heaviest. Suitable only if you are already using L<Moose> as your
object system.

=head1 ACME::CPANMODULES ENTRIES

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-Roles>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-RsyncWrappers

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-RsyncWrappers>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-SExpression

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-SExpression>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-SQLite

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-SQLite>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-Sampling

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-Sampling>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-Set

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-Set>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-ShellCompleters

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-ShellCompleters>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-Similarity

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-Similarity>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-SmartMatch

 view release on metacpan or  search on metacpan

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



**Modules**

However, if you still miss smart matching, some modules have been written to
give you the same/similar feature.

<pm:match::smart> (by TOBYINK, first released 2013, pure-perl) gives you a
similar behaviour to perl's own `~~`. It can be used as the `|M|` operator or as
the `match()` function.

<pm:Switch::Back> (by DCONWAY, first released in June 2024, pure-perl). Written
by one of the designers of Perl 6, Switch::Back offers roughly the same feature
set as the old `switch` and smartmatching. Although there's no longer `~~`, just
the `smartmatch()` function. So basically what <pm:match::smart> offers, but 11
years later.

<pm:match::simple> (by TOBYINK which is also the author of `match::smart`, first

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

error if you still use it.

B<Modules>

However, if you still miss smart matching, some modules have been written to
give you the same/similar feature.

L<match::smart> (by TOBYINK, first released 2013, pure-perl) gives you a
similar behaviour to perl's own C<~~>. It can be used as the C<|M|> operator or as
the C<match()> function.

L<Switch::Back> (by DCONWAY, first released in June 2024, pure-perl). Written
by one of the designers of Perl 6, Switch::Back offers roughly the same feature
set as the old C<switch> and smartmatching. Although there's no longer C<~~>, just
the C<smartmatch()> function. So basically what L<match::smart> offers, but 11
years later.

L<match::simple> (by TOBYINK which is also the author of C<match::smart>, first

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-SmartMatch>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-Soundex

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-Soundex>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-StructuredDATA

 view release on metacpan or  search on metacpan

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


our $LIST = {
    summary => 'List of modules that give some structure to DATA',
    description => <<'_',

The DATA file handle is a convenient feature provided by Perl to let scripts
access its own source code (specifically the part after __END__ or __DATA__).
Scripts can usually put some data so they can run without additional data files.

Instead of just a stream of bytes, some modules allow you to access the DATA as
some kind of structured storage.

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


This document describes version 0.002 of Acme::CPANModules::StructuredDATA (from Perl distribution Acme-CPANModules-StructuredDATA), released on 2022-03-18.

=head1 DESCRIPTION

The DATA file handle is a convenient feature provided by Perl to let scripts
access its own source code (specifically the part after B<END> or B<DATA>).
Scripts can usually put some data so they can run without additional data files.

Instead of just a stream of bytes, some modules allow you to access the DATA as
some kind of structured storage.

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-StructuredDATA>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-Sudoku

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-Sudoku>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-Symlink

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-Symlink>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-TableData

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-TableData>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-TemporaryChdir

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-TemporaryChdir>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-TextTable

 view release on metacpan or  search on metacpan

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


- <pm:Text::SimpleTable::AutoWidth> (wrapper to <pm:Text::SimpleTable>);
- <pm:Text::ASCIITable::EasyTable> (wrapper to <pm:Text::ASCIITable>);

_
    entry_features => {
        wide_char => {summary => 'Whether the use of wide characters (e.g. Kanji) in cells does not cause the table to be misaligned'},
        color_data =>  {summary => 'Whether module supports ANSI colors (i.e. text with ANSI color codes can still be aligned properly)'},
        multiline_data => {summary => 'Whether module supports aligning data cells that contain newlines'},

        box_char => {summary => 'Whether module can utilize box-drawing characters'},

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

_
            bench_code => sub {
                my ($table) = @_;
                Text::Table::Any::table(rows=>$table, header_row=>1);
            },
            features => {
                align_cell     => {value=>undef, summary=>"Depends on backend"},
                align_column   => {value=>undef, summary=>"Depends on backend"},
                align_row      => {value=>undef, summary=>"Depends on backend"},
                box_char       => {value=>undef, summary=>"Depends on backend"},
                color_data     => {value=>undef, summary=>"Depends on backend"},

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

                my @colspec = map {[9, $_]} @{ $table->[0] };
                my $ts = Text::SimpleTable->new(@colspec);
                for (1 .. $#{$table}) { $ts->row(@{ $table->[$_] }) }
                $ts->draw;
            },
            features => {
                align_cell     => {value=>0},
                align_column   => {value=>0},
                align_row      => {value=>0},
                box_char       => {value=>0},
                color_data     => {value=>0},

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


        {
            module => 'Text::UnicodeBox::Table',
            description => <<'_',

The main feature of this module is the various border style it provides drawn
using Unicode box-drawing characters. It allows per-row style. The rendering
speed is particularly slow compared to other modules.

_
            bench_code => sub {

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

                my $t = Text::UnicodeBox::Table->new;
                $t->add_header(@{ $table->[0] });
                $t->add_row(@{ $table->[$_] }) for 1..$#{$table};
                $t->render;
            },
            features => {
                align_cell => 0,
                align_column => 1,
                box_char => 0,
                color_data => 1,
                color_theme => 0,

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


        {
            module => 'Text::Table::Manifold',
            description => <<'_',

Two main features of this module is per-column aligning and wide character
support. This module, aside from doing its rendering, can also be told to pass
rendering to HTML, CSV, or other text table module like
<pm:Text::UnicodeBox::Table>); so in this way it is similar to
<pm:Text::Table::Any>.

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

                my $t = Text::Table::Manifold->new;
                $t->headers($table->[0]);
                $t->data([ @{$table}[1 .. $#{$table}] ]);
                join("\n", @{$t->render(padding => 1)}) . "\n";
            },
            features => {
                align_cell => 0,
                align_column => 1,
                box_char => undef, # ?
                color_data => 1,
                color_theme => 0,

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

            description => <<'_',

This 2013 project was my take in creating a text table module that can handle
color, multiline text, wide characters. I also threw in various formatting
options, e.g. per-column/row/cell align/valign/pad/vpad, conditional formatting,
and so on. I even added a couple of features I never used: hiding rows and
specifying columns to display which can be in different order from the original
specified columns or can contain the same original columns multiple times. I
think this module offers the most formatting options on CPAN.

In early 2021, I needed colspan/rowspan and I implemented this in a new module:
<pm:Text::Table::Span> (later renamed to <pm:Text::Table::More>). I plan to add
this feature too to Text::ANSITable, but in the meantime I'm also adding more
formatting options which I need to Text::Table::More.

_
            bench_code => sub {
                my ($table) = @_;

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

                    border_style => 'ASCII::SingleLine',
                );
                $t->add_row($table->[$_]) for 1..@$table-1;
                $t->draw;
            },
            features => {
                align_cell => 1,
                align_column => 1,
                align_row => 1,
                box_char => 1,
                color_data =>  1,

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

                my $t = Text::ASCIITable->new();
                $t->setCols(@{ $table->[0] });
                $t->addRow(@{ $table->[$_] }) for 1..@$table-1;
                "$t";
            },
            features => {
                wide_char_data => 0,
                color_data =>  0,
                box_char => 0,
                multiline_data => 1,
            },

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

                my $t = Text::FormatTable->new(join('|', ('l') x @{ $table->[0] }));
                $t->head(@{ $table->[0] });
                $t->row(@{ $table->[$_] }) for 1..@$table-1;
                $t->render;
            },
            features => {
                wide_char_data => 0,
                color_data =>  0,
                box_char => 0,
                multiline_data => 1,
            },

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

                    });
                }
                $t->done;
                $out;
            },
            features => {
                wide_char_data => 0,
                color_data =>  0,
                box_char => 0,
                multiline_data => {value=>0, summary=>'Newlines stripped'},
            },

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

                my ($table) = @_;
                my $t = Text::Table->new(@{ $table->[0] });
                $t->load(@{ $table }[1..@$table-1]);
                $t;
            },
            features => {
                wide_char_data => 0,
                color_data =>  0,
                box_char => {value=>undef, summary=>'Does not draw borders'},
                multiline_data => 1,
            },

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

_
            bench_code => sub {
                my ($table) = @_;
                Text::Table::Tiny::table(rows=>$table, header_row=>1);
            },
            features => {
                wide_char_data => 1,
                color_data =>  1,
                box_char => 1,
                multiline_data => 0,
            },

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

            module => 'Text::Table::TinyBorderStyle',
            bench_code => sub {
                my ($table) = @_;
                Text::Table::TinyBorderStyle::table(rows=>$table, header_row=>1);
            },
            features => {
                wide_char_data => 0,
                color_data =>  0,
                box_char => 1,
                multiline_data => 0,
            },
        },
        {
            module => 'Text::Table::More',
            description => <<'_',

A module I wrote in early 2021. Main distinguishing feature is support for
rowspan/clospan. I plan to add more features to this module on an as-needed
basic. This module is now preferred to <pm:Text::ANSITable>, although currently
it does not offer nearly as many formatting options as Text::ANSITable.

_
            bench_code => sub {
                my ($table) = @_;
                Text::Table::More::generate_table(rows=>$table, header_row=>1);
            },
            features => {
                align_cell => 1,
                align_column => 1,
                align_row => 1,
                box_char => 1,
                color_data =>  1,

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

        {
            module => 'Text::Table::Sprintf',
            description => <<'_',

A performant (see benchmark result) and lightweight (a page of code, no use of
modules at all), but with minimal extra features.

_
            bench_code => sub {
                my ($table) = @_;
                Text::Table::Sprintf::table(rows=>$table, header_row=>1);
            },
            features => {
                box_char => 0,
                color_data =>  0,
                multiline_data => 0,
                speed => {value=>"fast", summary=>"The fastest among the others in this list"},
                wide_char_data => 0,

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

            module => 'Text::Table::TinyColor',
            bench_code => sub {
                my ($table) = @_;
                Text::Table::TinyColor::table(rows=>$table, header_row=>1);
            },
            features => {
                wide_char_data => 0,
                color_data =>  1,
                box_char => 0,
                multiline_data => 0,
            },

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

            module => 'Text::Table::TinyColorWide',
            bench_code => sub {
                my ($table) = @_;
                Text::Table::TinyColorWide::table(rows=>$table, header_row=>1);
            },
            features => {
                wide_char_data => 1,
                color_data =>  1,
                box_char => 0,
                multiline_data => 0,
            },

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

            module => 'Text::Table::TinyWide',
            bench_code => sub {
                my ($table) = @_;
                Text::Table::TinyWide::table(rows=>$table, header_row=>1);
            },
            features => {
                wide_char_data => 1,
                color_data =>  0,
                box_char => 0,
            },
        },

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

            module => 'Text::Table::Org',
            bench_code => sub {
                my ($table) = @_;
                Text::Table::Org::table(rows=>$table, header_row=>1);
            },
            features => {
                wide_char_data => 0,
                color_data =>  0,
                box_char => 0,
                multiline_data => 0,
            },

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

            module => 'Text::Table::CSV',
            bench_code => sub {
                my ($table) = @_;
                Text::Table::CSV::table(rows=>$table, header_row=>1);
            },
            features => {
                wide_char_data => 1,
                color_data =>  0,
                box_char => {value=>undef, summary=>"Irrelevant"},
                multiline_data => {value=>1, summary=>"But make sure your CSV parser can handle multiline cell"},
            },

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

            module => 'Text::Table::HTML',
            bench_code => sub {
                my ($table) = @_;
                Text::Table::HTML::table(rows=>$table, header_row=>1);
            },
            features => {
                wide_char_data => 1,
                color_data =>  {value=>0, summary=>'Not converted to HTML color elements'},
                box_char => 0,
                multiline_data => 1,
            },

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

            module => 'Text::Table::HTML::DataTables',
            bench_code => sub {
                my ($table) = @_;
                Text::Table::HTML::DataTables::table(rows=>$table, header_row=>1);
            },
            features => {
                wide_char_data => 1,
                color_data =>  {value=>0, summary=>'Not converted to HTML color elements'},
                box_char => 0,
                multiline_data => 1,
            },

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

                my ($table) = @_;
                my $t = Text::TabularDisplay->new(@{ $table->[0] });
                $t->add(@{ $table->[$_] }) for 1..@$table-1;
                $t->render; # doesn't add newline
            },
            features => {
                wide_char_data => 1,
                color_data =>  0,
                box_char => {value=>undef, summary=>"Irrelevant"},
                multiline_data => 1,
            },

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


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

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

The main feature of this module is the various border style it provides drawn
using Unicode box-drawing characters. It allows per-row style. The rendering
speed is particularly slow compared to other modules.


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

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

Two main features of this module is per-column aligning and wide character
support. This module, aside from doing its rendering, can also be told to pass
rendering to HTML, CSV, or other text table module like
L<Text::UnicodeBox::Table>); so in this way it is similar to
L<Text::Table::Any>.

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

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

This 2013 project was my take in creating a text table module that can handle
color, multiline text, wide characters. I also threw in various formatting
options, e.g. per-column/row/cell align/valign/pad/vpad, conditional formatting,
and so on. I even added a couple of features I never used: hiding rows and
specifying columns to display which can be in different order from the original
specified columns or can contain the same original columns multiple times. I
think this module offers the most formatting options on CPAN.

In early 2021, I needed colspan/rowspan and I implemented this in a new module:
L<Text::Table::Span> (later renamed to L<Text::Table::More>). I plan to add
this feature too to Text::ANSITable, but in the meantime I'm also adding more
formatting options which I need to Text::Table::More.


=item L<Text::ASCIITable>

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


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

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

A module I wrote in early 2021. Main distinguishing feature is support for
rowspan/clospan. I plan to add more features to this module on an as-needed
basic. This module is now preferred to L<Text::ANSITable>, although currently
it does not offer nearly as many formatting options as Text::ANSITable.


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

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

A performant (see benchmark result) and lightweight (a page of code, no use of
modules at all), but with minimal extra features.


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

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

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-TextTable>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-UUID

 view release on metacpan or  search on metacpan

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

Aside from the modules listed as entries below, there are also:
<pm:App::UUIDUtils> (containing CLIs to create/check UUID), <pm:Data::GUID>
(currently just a wrapper for Data::UUID).

MARKDOWN
    entry_features => {
        v4_rfc4122 => {summary => 'Whether the generated v4 UUID follows RFC 4122 specification (i.e. encodes variant and version information in M & N positions)'},
        v4_secure_random => {summary => 'Whether the module uses cryptographically secure pseudo-random number generator for v4 UUIDs'},
    },
    entries => [
        {

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


The benchmark code creates 1000+1 v1 string UUIDs.

MARKDOWN
            bench_code_template => 'my $u = Data::UUID->new; $u->create for 1..1000; $u->to_string($u->create)',
            features => {
                is_xs => 1,
                is_pp => 0,
                create_v1 => 1,
                create_v2 => 1,
                create_v3 => 0,

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


The benchmark code creates 1000+1 v1 string UUIDs.

MARKDOWN
            bench_code_template => 'UUID::FFI->new_time for 1..1000; UUID::FFI->new_time->as_hex',
            features => {
                is_xs => 1,
                is_pp => 0,
                create_v1 => 1,
                create_v2 => 0,
                create_v3 => 0,

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

See also: <pm:Types::UUID> which is a type library that uses Data::UUID as the
backend.

MARKDOWN
            bench_code_template => 'UUID::Tiny::create_uuid() for 1..1000; UUID::Tiny::uuid_to_string(UUID::Tiny::create_uuid())',
            features => {
                is_xs => 0,
                is_pp => 1,
                create_v1 => 1,
                create_v2 => 0,
                create_v3 => 1,

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


The benchmark code creates 1000+1 v4 string UUIDs.

MARKDOWN
            bench_code_template => 'UUID::Random::generate() for 1..1000; ; UUID::Random::generate()',
            features => {
                is_xs => 0,
                is_pp => 1,
                create_v1 => 0,
                create_v2 => 0,
                create_v3 => 0,

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

Just another implementation of <pm:UUID::Random>.

The benchmark code creates 1000+1 v4 string UUIDs.

MARKDOWN
            features => {
                is_xs => 0,
                is_pp => 1,
                create_v1 => 0,
                create_v2 => 0,
                create_v3 => 0,

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

`irand()` to produce random numbers.

The benchmark code creates 1000+1 v4 string UUIDs.

MARKDOWN
            features => {
                is_xs => 0,
                is_pp => 1,
                create_v1 => 0,
                create_v2 => 0,
                create_v3 => 0,

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


The benchmark code creates 1000+1 v4 string UUIDs.

MARKDOWN
            bench_code_template => 'Crypt::Misc::random_v4uuid() for 1..1000; Crypt::Misc::random_v4uuid()',
            features => {
                is_xs => 0,
                is_pp => 1,
                create_v1 => 0,
                create_v2 => 0,
                create_v3 => 0,

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


The benchmark creates 1000+1 random UUIDs.

MARKDOWN
         bench_code_template => 'my $uuid; UUID::generate_random($uuid) for 1..1000; UUID::generate_random($uuid); $uuid',
            features => {
                is_xs => 1,
                is_pp => 0,
                create_v1 => 0,
                create_v2 => 0,
                create_v3 => 0,

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-UUID>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-Unbless

 view release on metacpan or  search on metacpan

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


Blessing a reference is easy with `bless()` but surprisingly (or
unsurprisingly?) unblessing a blessed reference is not as simple. Currently you
can use the `unbless()` function from <pm:Data::Structure::Util> or `damn()`
from <pm:Acme::Damn> (which is a slimmer module if you just need unblessing
feature). Both are XS modules. If you need a pure-Perl solution, currently
you're out of luck. <pm:Function::Fallback::CoreOrPP> provides `unbless()` where
the fallback option is shallow copying.

_
    entries => [

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


Blessing a reference is easy with C<bless()> but surprisingly (or
unsurprisingly?) unblessing a blessed reference is not as simple. Currently you
can use the C<unbless()> function from L<Data::Structure::Util> or C<damn()>
from L<Acme::Damn> (which is a slimmer module if you just need unblessing
feature). Both are XS modules. If you need a pure-Perl solution, currently
you're out of luck. L<Function::Fallback::CoreOrPP> provides C<unbless()> where
the fallback option is shallow copying.

=head1 ACME::CPANMODULES ENTRIES

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-Unbless>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-UnixCommandImplementations

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-UnixCommandImplementations>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-UnixCommandVariants

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-UnixCommandVariants>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


Acme-CPANModules-UnixCommandWrappers

 view release on metacpan or  search on metacpan

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

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-UnixCommandWrappers>

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

=cut

 view all matches for this distribution


( run in 1.157 second using v1.01-cache-2.11-cpan-a5abf4f5562 )