---
name: "Module::Versions::Report"
section: "3pm"
platform: "linux"
package: "libmodule-versions-report-perl"
version: "1.06-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Module::Versions::Report"
---

# Module::Versions::Report(3pm)

## NAME

Module::Versions::Report -- report versions of all modules in memory

## SYNOPSIS

```
  use Module::Versions::Report;

  ...and any code you want...
```

This will run all your code normally, but then as the Perl interpreter is about to exit, it will print something like:

```
  Perl v5.6.1 under MSWin32.
   Modules in memory:
    attributes;
    AutoLoader v5.58;
    Carp;
    Config;
    DynaLoader v1.04;
    Exporter v5.562;
    Module::Versions::Report v1.01;
    HTML::Entities v1.22;
    HTML::HeadParser v2.15;
    HTML::Parser v3.25;
    [... and whatever other modules were loaded that session...]
```

Consider its use from the command line:

```
  % perl -MModule::Versions::Report -MLWP -e 1
  Perl v5.6.1 under MSWin32.
   Modules in memory:
    attributes;
    AutoLoader v5.58;
    [...]
```

## DESCRIPTION

I often get email from someone reporting a bug in a module I've written.  I email back, asking what version of the module it is, what version of Perl on what OS, and sometimes what version of some relevent third library (like XML::Parser).  They reply, saying "Perl 5".  I say "I need the exact version, as reported by `"perl -v"`".  They tell me.  And I say "I, uh, also asked about the version of my module and XML::Parser \[or whatever\]".  They say "Oh yeah.  It's 2.27".  "Is that my module or XML::Parser?"  "XML::Parser."  "OK, and what about my module's version?"  "Ohyeah.  That's 3.11."  By this time, days have passed, and what should have been a simple operation -- reporting the version of Perl and relevent modules, has been needlessly complicated.

This module is for simplifying that task.  If you add "use Module::Versions::Report;" to a program (especially handy if your program is one that demonstrates a bug in some module), then when the program has finished running, you well get a report detailing the all modules in memory, and noting the version of each (for modules that defined a `$VERSION`, at least).

## USING

### Importing

If this package is imported then END block is set, and report printed to stdout on a program exit, so use `"use Module::Versions::Report;"` if you need a report on exit or `"use Module::Versions::Report ();"` otherwise and call report or print\_report functions yourself.

### report and print\_report functions

The first one returns preformatted report as a string, the latter outputs a report to stdout.

## COPYRIGHT AND DISCLAIMER

Copyright 2001-2003 Sean M. Burke. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.

## MAINTAINER

Ruslan U. Zakirov \<ruz@bestpractical.com\>

## AUTHOR

Sean M. Burke, \<sburke@cpan.org\>
