Acme-CPANLists-PERLANCAR
view release on metacpan or search on metacpan
lib/Acme/CPANLists/PERLANCAR/ArrayClassBuilder.pm view on Meta::CPAN
our @Module_Lists = (
{
summary => 'Class builders for array-backed classes',
description => <<'_',
This list catalogs class builders for classes that use array (instead of the
popular hash) as their backend storage.
Hash is the vastly popular backend for object due to its flexibility and
convenient mapping of hash keys to object attributes, but actually Perl objects
can be references to any kind of data (array, scalar, glob). Storing objects as
other kinds of references can be useful in terms of attribute access speed,
memory size, or other aspects. But they are not as versatile and generic as
hash.
_
entries => [
{module => 'Class::Accessor::Array'},
{module => 'Class::Accessor::Array::Glob'},
{module => 'Class::XSAccessor::Array'},
{module => 'Class::ArrayObjects'},
lib/Acme/CPANLists/PERLANCAR/ArrayClassBuilder.pm view on Meta::CPAN
=head1 MODULE LISTS
=head2 Class builders for array-backed classes
This list catalogs class builders for classes that use array (instead of the
popular hash) as their backend storage.
Hash is the vastly popular backend for object due to its flexibility and
convenient mapping of hash keys to object attributes, but actually Perl objects
can be references to any kind of data (array, scalar, glob). Storing objects as
other kinds of references can be useful in terms of attribute access speed,
memory size, or other aspects. But they are not as versatile and generic as
hash.
=over
=item * L<Class::Accessor::Array>
=item * L<Class::Accessor::Array::Glob>
lib/Acme/CPANLists/PERLANCAR/LocalCPANMirror.pm view on Meta::CPAN
can use on your PC/laptop for offline development use.
_
},
{
module=>'App::lcpan',
description => <<'_',
This application not only lets you download a CPAN mini mirror (using
<pm:CPAN::Mini> actually) but also index the package list and distribution
metadata into a SQLite database so you can perform various queries, like list of
modules/distributions/scripts of a CPAN author, or related modules using
cross-mention information on modules' PODs, or various rankings.
_
},
],
},
);
1;
lib/Acme/CPANLists/PERLANCAR/LocalCPANMirror.pm view on Meta::CPAN
newest release for each distribution (where CPAN might also contains previous
versions of a distribution as long as the CPAN author does not clean up his
previous releases). This produces a significantly smaller CPAN mirror which you
can use on your PC/laptop for offline development use.
=item * L<App::lcpan>
This application not only lets you download a CPAN mini mirror (using
L<CPAN::Mini> actually) but also index the package list and distribution
metadata into a SQLite database so you can perform various queries, like list of
modules/distributions/scripts of a CPAN author, or related modules using
cross-mention information on modules' PODs, or various rankings.
=back
=head1 HOMEPAGE
Please visit the project's homepage at L<https://metacpan.org/release/Acme-CPANLists-PERLANCAR>.
lib/Acme/CPANLists/PERLANCAR/Task/CheckingModuleInstalledLoadable.pm view on Meta::CPAN
if (-f "$dir/$mod") {
print "Module $mod is installed";
last;
}
}
Or you can use something like <pm:Module::Path> or <pm:Module::Path::More> which
does similar to the above.
A module can also be loaded from a require hook in ~@INC~ (like in the case of
fatpacked or datapacked script) and the above methods does not handle it.
Instead, you'll need to use <pm:Module::Load::Conditional>'s `check_install` or
<pm:Module::Installed::Tiny>'s `module_installed`:
use Module::Load::Conditional qw(check_install);
if (check_install(module => "Foo::Bar")) {
# Foo::Bar is installed
}
The above does not guarantee that the module will be loaded successfully. To
check that, there's no other way but to actually try to load it:
lib/Acme/CPANLists/PERLANCAR/Task/CheckingModuleInstalledLoadable.pm view on Meta::CPAN
if (-f "$dir/$mod") {
print "Module $mod is installed";
last;
}
}
Or you can use something like L<Module::Path> or L<Module::Path::More> which
does similar to the above.
A module can also be loaded from a require hook in ~@INC~ (like in the case of
fatpacked or datapacked script) and the above methods does not handle it.
Instead, you'll need to use L<Module::Load::Conditional>'s C<check_install> or
L<Module::Installed::Tiny>'s C<module_installed>:
use Module::Load::Conditional qw(check_install);
if (check_install(module => "Foo::Bar")) {
# Foo::Bar is installed
}
The above does not guarantee that the module will be loaded successfully. To
check that, there's no other way but to actually try to load it:
lib/Acme/CPANLists/PERLANCAR/Task/WorkingWithTree.pm view on Meta::CPAN
**Roles**
<pm:Role::TinyCommons::Tree>.
_
our @Module_Lists = (
{
summary => 'Working with tree data structure in Perl',
description => $text,
tags => ['task'],
entries => [
map { +{module=>$_} } $text =~ /`(\w+(?:::\w+)+)`/g
],
},
);
1;
# ABSTRACT: Working with tree data structure in Perl
__END__
=pod
=encoding UTF-8
=head1 NAME
Acme::CPANLists::PERLANCAR::Task::WorkingWithTree - Working with tree data structure in Perl
=head1 VERSION
This document describes version 0.26 of Acme::CPANLists::PERLANCAR::Task::WorkingWithTree (from Perl distribution Acme-CPANLists-PERLANCAR), released on 2017-09-08.
=head1 MODULE LISTS
=head2 Working with tree data structure in Perl
B<Basics>
Perl classes to represent tree (node) structure: L<Tree::Object> and
L<Tree::ObjectXS> (comes with several varieties). They provide methods like
walking a tree, checking whether a node is the first child, getting sibling
nodes, and so on.
Perl modules to manipulate tree: L<Data::Tree>, L<Tree::Simple>.
( run in 0.681 second using v1.01-cache-2.11-cpan-49f99fa48dc )