Acme-CPANLists-PERLANCAR

 view release on metacpan or  search on metacpan

lib/Acme/CPANLists/PERLANCAR/ArrayClassBuilder.pm  view on Meta::CPAN

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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

49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
=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

25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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

76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
        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

89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
     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

43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
 
**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 1.244 second using v1.01-cache-2.11-cpan-49f99fa48dc )