X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/656ebd29b326e7cb4e9181b77b10fccb1c1df3c6..18b19aecdfa8e9a21e5eca3a11e12fc13e8e219b:/lib/Module/CoreList.pm diff --git a/lib/Module/CoreList.pm b/lib/Module/CoreList.pm index e3ae795..c14a0de 100644 --- a/lib/Module/CoreList.pm +++ b/lib/Module/CoreList.pm @@ -1,7 +1,7 @@ package Module::CoreList; use strict; use vars qw/$VERSION %released %patchlevel %version %families/; -$VERSION = '2.04'; +$VERSION = '2.05'; =head1 NAME @@ -16,6 +16,11 @@ Module::CoreList - what modules shipped with versions of perl print Module::CoreList->first_release('File::Spec'); # prints 5.00503 print Module::CoreList->first_release('File::Spec', 0.82); # prints 5.006001 + print join ', ', Module::CoreList->find_modules(qr/Data/); + # prints 'Data::Dumper' + print join ', ', Module::CoreList->find_modules(qr/test::h.*::.*s/i, 5.008008); + # prints 'Test::Harness::Assert, Test::Harness::Straps' + print join ", ", @{ $Module::CoreList::families{5.005} }; # prints "5.005, 5.00503, 5.00504" @@ -99,6 +104,21 @@ sub first_release { return (sort { $released{$a} cmp $released{$b} } @perls)[0]; } +sub find_modules { + my $discard = shift; + my $regex = shift; + my @perls = @_; + @perls = keys %version unless @perls; + + my %mods; + foreach (@perls) { + while (my ($k, $v) = each %{$version{$_}}) { + $mods{$k}++ if $k =~ $regex; + } + } + return sort keys %mods +} + # when things escaped %released = (