NAME

Module::Version::Loaded - Get a versioned list of currently loaded modules

VERSION

version 0.000003

SYNOPSIS

use Module::Version::Loaded qw( versioned_modules );

my %modules = versioned_modules();
# %modules contains: ( Foo::Bar => 0.01, Bar::Foo => 1.99, ... )

# You can test this with a series of one-liners
perl -MModule::Version::Loaded=store_versioned_modules -MTest::More -e "store_versioned_modules('test-more.txt')"
perl -MModule::Version::Loaded=store_versioned_modules -MApp::Prove -e "store_versioned_modules('app-prove.txt')"
perl -MModule::Version::Loaded=diff_versioned_modules -e "diff_versioned_modules('test-more.txt','app-prove.txt')"

DESCRIPTION

BETA BETA BETA

This module exists solely to give you a version of your %INC which includes the versions of the modules you have loaded. This is helpful when troubleshooting different environments. It makes it easier to see, at glance, which versions of modules you have actually loaded.

FUNCTIONS

versioned_modules

Returns a Hash of module versions, which is keyed on module name.

use Module::Version::Loaded qw( versioned_modules );
my %modules = versioned_modules();
# contains:
...
vars                         => 1.03,
version                      => 0.9912,
version::regex               => 0.9912,
version::vxs                 => 0.9912,
...

versioned_inc

Returns a Hash of module versions, which uses the same keys as %INC. This makes it easier to compare this data which %INC, since both Hashes will share the same keys.

use Module::Version::Loaded qw( versioned_inc );
my %inc = versioned_inc();
# contains:
...
version.pm                    => 0.9912,
version/regex.pm              => 0.9912,
version/vxs.pm                => 0.9912,
warnings.pm                   => 1.18,
...

foreach my $key ( %INC ) {
    print "$key $INC{$key} $inc{$key}\n";
}

store_versioned_modules( $file )

Serializes your versioned module list to an arbitrary file name which you must provide.

diff_versioned_modules( $file1, $file2 )

Requires the name of two files, which have previously been serialized via store_versioned_modules. Uses Data::Difflet to print a comparison of these data structures to STDOUT.

You can do this with a one-line to save time:

perl -MModule::Version::Loaded=diff_versioned_modules -e "diff_versioned_modules('file1','file2')"

AUTHOR

Olaf Alders <olaf@wundercounter.com>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2015 by MaxMind, Inc..

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)