NAME
Module::List::Wildcard - A fork of Module::List that groks wildcard
VERSION
This document describes version 0.004009 of Module::List::Wildcard (from
Perl distribution Module-List-Wildcard), released on 2021-01-16.
SYNOPSIS
Use like you would Module::List, e.g.:
use Module::List::Wildcard qw(list_modules);
$id_modules = list_modules("Data::ID::", { list_modules => 1});
$prefixes = list_modules("", { list_prefixes => 1, recurse => 1 });
Wildcard support:
$modules = list_modules("Module::P*", { wildcard => 1, list_modules => 1});
$modules = list_modules("Module::P**", { wildcard => 1, list_modules => 1});
"all" option:
$modules = list_modules("Module::", { list_modules => 1, all => 1});
DESCRIPTION
This module is a fork of Module::List. It's exactly like Module::List
0.004, except for the following differences:
* lower startup overhead (with some caveats)
It strips the usage of Exporter, IO::Dir, Carp, File::Spec, with the
goal of saving a few milliseconds (a casual test on my PC results in
11ms vs 39ms).
Path separator is hard-coded as "/".
* Recognize "wildcard" option
This boolean option can be set to true to recognize wildcard pattern
in prefix. Wildcard patterns such as jokers ("?", "*", "**"),
classes ("[a-z]"), as well as braces ("{One,Two}") are supported.
"**" implies recursive listing (sets "recurse" option to 1).
Examples:
list_modules("Module::P*", {wildcard=>1, list_modules=>1});
results in something like:
{
"Module::Patch" => undef,
"Module::Path" => undef,
"Module::Pluggable" => undef,
}
while:
list_modules("Module::P**", {wildcard=>1, list_modules=>1});
results in something like:
{
"Module::Patch" => undef,
"Module::Path" => undef,
"Module::Path::More" => undef,
"Module::Pluggable" => undef,
"Module::Pluggable::Object" => undef,
}
while:
list_modules("Module::**le", {wildcard=>1, list_modules=>1});
results in something like:
{
"Module::Depakable" => undef,
"Module::Install::Admin::Bundle" => undef,
"Module::Install::Admin::Makefile" => undef,
"Module::Install::Bundle" => undef,
"Module::Install::Makefile" => undef,
"Module::Pluggable" => undef,
}
HOMEPAGE
Please visit the project's homepage at
<https://metacpan.org/release/Module-List-Wildcard>.
SOURCE
Source repository is at
<https://github.com/perlancar/perl-Module-List-Wildcard>.
BUGS
Please report any bugs or feature requests on the bugtracker website
<https://github.com/perlancar/perl-Module-List-Wildcard/issues>
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.
SEE ALSO
Module::List
Module::List::Tiny
Module::List::More, from which Module::List::Wildcard is actually forked
from. Module::List::More contains more features, including wildcard
support. I'm currently maintainng both modules. Eventually this
duplication might be resolved in the future.
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2021, 2020, 2019 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.