Matt S Trout > Module-Metadata-1.000001 > Module::Metadata



Annotate this POD


New  3
Open  7
Stalled  1
View/Report Bugs
Module Version: 1.000001   Source   Latest Release: Module-Metadata-1.000031-TRIAL


Module::Metadata - Gather package and POD information from perl module files


new_from_file($filename, collect_pod => 1)

Construct a ModuleInfo object given the path to a file. Takes an optional argument collect_pod which is a boolean that determines whether POD data is collected and stored for reference. POD data is not collected by default. POD headings are always collected.

new_from_module($module, collect_pod => 1, inc => \@dirs)

Construct a ModuleInfo object given a module or package name. In addition to accepting the collect_pod argument as described above, this method accepts a inc argument which is a reference to an array of of directories to search for the module. If none are given, the default is @INC.


Returns the name of the package represented by this module. If there are more than one packages, it makes a best guess based on the filename. If it's a script (i.e. not a *.pm) the package name is 'main'.


Returns the version as defined by the $VERSION variable for the package as returned by the name method if no arguments are given. If given the name of a package it will attempt to return the version of that package if it is specified in the file.


Returns the absolute path to the file.


Returns a list of packages.


Returns a list of POD sections.


Returns true if there is any POD in the file.


Returns the POD data in the given section.

find_module_by_name($module, \@dirs)

Returns the path to a module given the module or package name. A list of directories can be passed in as an optional parameter, otherwise @INC is searched.

Can be called as either an object or a class method.

find_module_dir_by_name($module, \@dirs)

Returns the entry in @dirs (or @INC by default) that contains the module $module. A list of directories can be passed in as an optional parameter, otherwise @INC is searched.

Can be called as either an object or a class method.

package_versions_from_directory($dir, \@files?)

Scans $dir for .pm files (unless @files is given, in which case looks for those files in $dir - and reads each file for packages and versions, returning a hashref of the form:

    'Package::Name' => {
      version => '0.123',
      file => 'Package/'
    'OtherPackage::Name' => ...
log_info (internal)

Used internally to perform logging; imported from Log::Contextual if Log::Contextual has already been loaded, otherwise simply calls warn.


Ken Williams <>, Randy W. Sims <>

Released as Module::Metadata by Matt S Trout (mst) <> with assistance from David Golden (xdg) <>


Copyright (c) 2001-2006 Ken Williams. All rights reserved.

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


perl(1), Module::Build::ModuleInfo(3)

syntax highlighting: