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
optionThis 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 (setsrecurse
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::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.