logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Author

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

perl v5.36.0                                       2022-10-13                      Module::Versions::Report(3pm)

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).

Maintainer

       Ruslan U. Zakirov <ruz@bestpractical.com>

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;
           [...]

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.

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

See Also