GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Module::Info::File(3) User Contributed Perl Documentation Module::Info::File(3)

Module::Info::File - retrieve module information from a file

This POD describes version 1.00 of Module::Info::File

        use Module::Info::File;

        my $module = Module::Info::File->new_from_file('path/to/Some/Module.pm');

        $module->name();

        $module->version();

        $module->file();

        $module->inc_dir();

Module::Info (SEE REFERENCES), are lacking functionality of being able to extract certain data when parsing a module directly from a file. I have therefor created Module::Info::File, which inherits from Module::Info and replaces the new_from_file method so the lacking data can be accessed (dir and name attributes). Apart from that you can use all the neat accessors from Module::Info.

Given the following structure in a file:

    package Foo;
    1;
    package Bar;
    1;

Module::Info::File returns: Foo

Given the following structure in a file:

    package Foo;
    $VERSION = '0.01';
    1;

Given a file, it will interpret this as the module you want information about. You can also hand it a perl script.

After construction has been completed three attributes have been set in the object:

  • name
  • dir
  • file

So by using the inherited methods from Module::Info you can access the attributes.

In the script folder in this distribution is a small script called version.pl, which was the beginning of this module.

  • name, returns the package name of the file.
  • version, returns the version number of the module/file in question ($VERSION).
  • inc_dir, returns the dir attribute
  • file, returns the file attribute

A helper method to streamline the result set

In general please refer to the documentation on Module::Info for more details.

In list context the module returns and array of Module::Info::File objects, with which you can use the above accessors. The information in the objects might not be complete though (SEE: CAVEATS).

In the t/ directory of this distribution there is a test (Info.t), it includes some tests. These tests will test your installation of Module::Info (required by Module::Info::File), if the tests fail, Module::Info::File will be obsolete and can be discontinued.

  • Module::Info, by Mattia Barbon
  • script/version.pl

The module can somewhat handle several package definitions in one file, but the information is not complete yet, such as version information etc.

The method currently only support the following version number lines:

        $VERSION = '0.01';

        $VERSION = 0.01;

Eric D. Paterson scanned his complete CPAN installation and got and came across a few problems:
DBD::Oracle, the package was defined in a closure, this is handled from Module::Info::File 0.09.
Archive::Zip::Tree, which is installed, however deprecated and does NOT contain a package defition.
CGI::Apache, where the installed version was located in CGI/apache.pm so the casing was not uniform with the package definition, I have asked Eric for further information on this issue, regarding his version and installation.

"Unable to open file: <filename> - <operating system error>"

If the constructor new_from_file is given a filename parameter, which does not meet the following prerequisites:

  • it must be a file and it must exist
  • the file must be readable by the user

There is a such no configuration necessary and Module::Info::File is expected to work on the same environments as perl itself.

This module is a sub-class of Module::Info, so the following direct dependencies have to be met:
Module::Info 0.20
File::Spec, to work on non-unix operating systems
Perl 5.6.0 and above
Compability for older perls is no longer required, if somebody would require this I would be willing to invest the time and effort.

In no particular order
  • Mohammad S Anwar, for PRs #6
  • Dai Okabayashi (bayashi), for PRs #2 and #3
  • Jeffrey Ryan Thalhammer, for Perl::Critic
  • chromatic, for Test::Kwalitee
  • Eric D. Peterson, for reporting bugs resulting in an improvement
  • Lars Thegler. tagg (LTHEGLER), for not letting me go easily, a patch and suggesting the list context variation.
  • Thomas Eibner (THOMAS), for reviewing the POD
  • Mattia Barbon (MBARBON), for writing Module::Info
  • bigj at Perlmonks who mentioned Module::Info
  • All the CPAN testers, who help you to have your stuff tested on platforms not necessarily available to a module author.

jonasbn <jonasbn@cpan.org>

Module::Info::File and related modules are free software and is released under the Artistic License 2.0.

Module::Info::File is (C) 2003-2017 Jonas B. Nielsen (jonasbn) <jonasbn@cpan.org>

2019-09-06 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.