The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dist::Surveyor - Survey installed modules and determine the specific distribution versions they came from

SYNOPSIS

    my $options = {
        opt_match => $opt_match,
        opt_perlver => $opt_perlver,
        opt_remnants => $opt_remnants,
        distro_key_mod_names => $distro_key_mod_names,
    };
    my @installed_releases = determine_installed_releases($options, \@libdirs);

DESCRIPTION

Surveys your huge ball of Perl modules, jammed together inside a directory, and tells you exactly which module is installed there.

For quick start, and a fine example of this module usage, see dist_surveyor.

This module have one exported function - determine_installed_releases

determine_installed_releases($options, $search_dirs)

$options includes:

opt_match

A regex qr//. If exists, will ignore modules that doesn't match this regex

opt_perlver

Skip modules that are included as core in this Perl version

opt_remnants

If true, output will include old distribution versions that have left old modules behind

distro_key_mod_names

A hash-ref, with a list of irregular named releases. i.e. 'libwww-perl' => 'LWP'.

$search_dirs is an array-ref containing the list of directories to survey.

Returns a list, where each element is a hashref representing one installed distibution. This hashref is what MetaCPAN returns for https://fastapi.metacpan.org/v1/release/$author/$release, with two additional keys:

  • 'url' - that same as 'download_url', but without the hostname. can be used to download the file for your favorite mirror

  • 'dist_data' - Hashref containing info about the release, i.e. percent_installed. (fully installed releases will have '100.00')

OTHERS

This module checks $::DEBUG and $::VERBOSE for obvious proposes.

This module uses Dist::Surveyor::Inquiry to communicate with MetaCPAN. Check that module's documentation for options and caching.

You can use Dist::Surveyor::MakeCpan to take the list of releases and create a mini-cpan containing them.

AUTHOR

Written by Tim Bunce <Tim.Bunce@pobox.com>

Maintained by Fomberg Shmuel <shmuelfomberg@gmail.com>, Dan Book <dbook@cpan.org>

COPYRIGHT AND LICENSE

Copyright 2011-2013 by Tim Bunce.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.