Edit D:\app\Administrator\product\11.2.0\dbhome_1\perl\html\lib\CPANPLUS\Module.html
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>../lib/CPANPLUS/Module.pm</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rev="made" href="mailto:" /> </head> <body style="background-color: white"> <table border="0" width="100%" cellspacing="0" cellpadding="3"> <tr><td class="block" style="background-color: #cccccc" valign="middle"> <big><strong><span class="block"> ../lib/CPANPLUS/Module.pm</span></strong></big> </td></tr> </table> <!-- INDEX BEGIN --> <div name="index"> <p><a name="__index__"></a></p> <ul> <li><a href="#name">NAME</a></li> <li><a href="#synopsis">SYNOPSIS</a></li> <li><a href="#description">DESCRIPTION</a></li> <li><a href="#class_methods">CLASS METHODS</a></li> <ul> <li><a href="#accessors___">accessors ()</a></li> </ul> <li><a href="#accessors">ACCESSORS</a></li> <li><a href="#status_accessors">STATUS ACCESSORS</a></li> <li><a href="#methods">METHODS</a></li> <ul> <li><a href="#_self___cpanplus__module__new__options__">$self = CPANPLUS::Module::new( OPTIONS )</a></li> <li><a href="#_mod__package_name">$mod->package_name</a></li> <li><a href="#_mod__package_version">$mod->package_version</a></li> <li><a href="#_mod__package_extension">$mod->package_extension</a></li> <li><a href="#_mod__package_is_perl_core">$mod->package_is_perl_core</a></li> <li><a href="#_mod__module_is_supplied_with_perl_core___version_________">$mod->module_is_supplied_with_perl_core( [version => $]] )</a></li> <li><a href="#_mod__is_bundle">$mod->is_bundle</a></li> <li><a href="#_mod__is_third_party">$mod->is_third_party</a></li> <li><a href="#_mod__third_party_information">$mod->third_party_information</a></li> <li><a href="#_clone____self__clone">$clone = $self->clone</a></li> <li><a href="#_where____self__fetch">$where = $self->fetch</a></li> <li><a href="#_path____self__extract">$path = $self->extract</a></li> <li><a href="#_type____self__get_installer_type__prefer_makefile____bool__">$type = $self->get_installer_type([prefer_makefile => BOOL])</a></li> <li><a href="#_dist____self__dist__target_____prepare_create___format____distribution_type__args_____key____val____">$dist = $self->dist([target => 'prepare|create', format => DISTRIBUTION_TYPE, args => {key => val}]);</a></li> <li><a href="#_bool____mod__prepare___">$bool = $mod->prepare( )</a></li> <li><a href="#_bool____mod__create___">$bool = $mod->create( )</a></li> <li><a href="#_bool____mod__test___">$bool = $mod->test( )</a></li> <li><a href="#_bool____self__install___target_____prepare_create_install___format____format_type__extractdir____directory__fetchdir____directory__prefer_bin____bool__force____bool__verbose____bool___________">$bool = $self->install([ target => 'prepare|create|install', format => FORMAT_TYPE, extractdir => DIRECTORY, fetchdir => DIRECTORY, prefer_bin => BOOL, force => BOOL, verbose => BOOL, ..... ]);</a></li> <li><a href="#_text____self__readme">$text = $self->readme</a></li> <li><a href="#_version____self__installed_version__">$version = $self-><code>installed_version()</code></a></li> <li><a href="#_where____self__installed_file__">$where = $self-><code>installed_file()</code></a></li> <li><a href="#_bool____self__is_uptodate__version____version_number__">$bool = $self->is_uptodate([version => VERSION_NUMBER])</a></li> <li><a href="#_href____self__details__">$href = $self-><code>details()</code></a></li> <li><a href="#_list____self__contains__">@list = $self-><code>contains()</code></a></li> <li><a href="#_list_of_hrefs____self__fetch_report__">@list_of_hrefs = $self-><code>fetch_report()</code></a></li> <li><a href="#_bool____self__uninstall__type_____all_man_prog__">$bool = $self->uninstall([type => [all|man|prog])</a></li> <li><a href="#_modobj____self__distributions__">@modobj = $self-><code>distributions()</code></a></li> <li><a href="#_list____self__files___">@list = $self->files ()</a></li> <li><a href="#_list____self__directory_tree___">@list = $self->directory_tree ()</a></li> <li><a href="#_list____self__packlist___">@list = $self->packlist ()</a></li> <li><a href="#_list____self__validate___">@list = $self->validate ()</a></li> <li><a href="#_bool____self__add_to_includepath_">$bool = $self->add_to_includepath;</a></li> <li><a href="#_path____self__best_path_to_module_build___">$path = $self-><code>best_path_to_module_build()</code>;</a></li> </ul> <li><a href="#bug_reports">BUG REPORTS</a></li> <li><a href="#author">AUTHOR</a></li> <li><a href="#copyright">COPYRIGHT</a></li> </ul> <hr name="index" /> </div> <!-- INDEX END --> <p> </p> <hr /> <h1><a name="name">NAME</a></h1> <p>CPANPLUS::Module</p> <p> </p> <hr /> <h1><a name="synopsis">SYNOPSIS</a></h1> <pre> ### get a module object from the CPANPLUS::Backend object my $mod = $cb->module_tree('Some::Module');</pre> <pre> ### accessors $mod->version; $mod->package;</pre> <pre> ### methods $mod->fetch; $mod->extract; $mod->install;</pre> <p> </p> <hr /> <h1><a name="description">DESCRIPTION</a></h1> <p><code>CPANPLUS::Module</code> creates objects from the information in the source files. These can then be used to query and perform actions on, like fetching or installing.</p> <p>These objects should only be created internally. For <code>fake</code> objects, there's the <code>CPANPLUS::Module::Fake</code> class. To obtain a module object consult the <code>CPANPLUS::Backend</code> documentation.</p> <p> </p> <hr /> <h1><a name="class_methods">CLASS METHODS</a></h1> <p> </p> <h2><a name="accessors___">accessors ()</a></h2> <p>Returns a list of all accessor methods to the object</p> <p> </p> <hr /> <h1><a name="accessors">ACCESSORS</a></h1> <p>An objects of this class has the following accessors:</p> <dl> <dt><strong><a name="name" class="item">name</a></strong> <dd> <p>Name of the module.</p> </dd> </li> <dt><strong><a name="module" class="item">module</a></strong> <dd> <p>Name of the module.</p> </dd> </li> <dt><strong><a name="version" class="item">version</a></strong> <dd> <p>Version of the module. Defaults to '0.0' if none was provided.</p> </dd> </li> <dt><strong><a name="path" class="item">path</a></strong> <dd> <p>Extended path on the mirror.</p> </dd> </li> <dt><strong><a name="comment" class="item">comment</a></strong> <dd> <p>Any comment about the module -- largely unused.</p> </dd> </li> <dt><strong><a name="package" class="item">package</a></strong> <dd> <p>The name of the package.</p> </dd> </li> <dt><strong><a name="description" class="item">description</a></strong> <dd> <p>Description of the module -- only registered modules have this.</p> </dd> </li> <dt><strong><a name="dslip" class="item">dslip</a></strong> <dd> <p>The five character dslip string, that represents meta-data of the module -- again, only registered modules have this.</p> </dd> </li> <dt><strong><a name="status" class="item">status</a></strong> <dd> <p>The <code>CPANPLUS::Module::Status</code> object associated with this object. (see below).</p> </dd> </li> <dt><strong><a name="author" class="item">author</a></strong> <dd> <p>The <code>CPANPLUS::Module::Author</code> object associated with this object.</p> </dd> </li> <dt><strong><a name="parent" class="item">parent</a></strong> <dd> <p>The <code>CPANPLUS::Internals</code> object that spawned this module object.</p> </dd> </li> </dl> <p> </p> <hr /> <h1><a name="status_accessors">STATUS ACCESSORS</a></h1> <p><code>CPANPLUS</code> caches a lot of results from method calls and saves data it collected along the road for later reuse.</p> <p><code>CPANPLUS</code> uses this internally, but it is also available for the end user. You can get a status object by calling:</p> <pre> $modobj->status</pre> <p>You can then query the object as follows:</p> <dl> <dt><strong><a name="installer_type" class="item">installer_type</a></strong> <dd> <p>The installer type used for this distribution. Will be one of 'makemaker' or 'build'. This determines whether <code>CPANPLUS::Dist::MM</code> or <code>CPANPLUS::Dist::Build</code> will be used to build this distribution.</p> </dd> </li> <dt><strong><a name="dist_cpan" class="item">dist_cpan</a></strong> <dd> <p>The dist object used to do the CPAN-side of the installation. Either a <code>CPANPLUS::Dist::MM</code> or <code>CPANPLUS::Dist::Build</code> object.</p> </dd> </li> <dt><strong><a name="dist" class="item">dist</a></strong> <dd> <p>The custom dist object used to do the operating specific side of the installation, if you've chosen to use this. For example, if you've chosen to install using the <code>ports</code> format, this may be a <code>CPANPLUS::Dist::Ports</code> object.</p> </dd> <dd> <p>Undefined if you didn't specify a separate format to install through.</p> </dd> </li> <dt><strong><a name="prereqs" class="item">prereqs</a></strong> <dd> <p>A hashref of prereqs this distribution was found to have. Will look something like this:</p> </dd> <dd> <pre> { Carp => 0.01, strict => 0 }</pre> </dd> <dd> <p>Might be undefined if the distribution didn't have any prerequisites.</p> </dd> </li> <dt><strong><a name="signature" class="item">signature</a></strong> <dd> <p>Flag indicating, if a signature check was done, whether it was OK or not.</p> </dd> </li> <dt><strong><a name="extract" class="item">extract</a></strong> <dd> <p>The directory this distribution was extracted to.</p> </dd> </li> <dt><strong><a name="fetch" class="item">fetch</a></strong> <dd> <p>The location this distribution was fetched to.</p> </dd> </li> <dt><strong><a name="readme" class="item">readme</a></strong> <dd> <p>The text of this distributions README file.</p> </dd> </li> <dt><strong><a name="uninstall" class="item">uninstall</a></strong> <dd> <p>Flag indicating if an uninstall call was done successfully.</p> </dd> </li> <dt><strong><a name="created" class="item">created</a></strong> <dd> <p>Flag indicating if the <code>create</code> call to your dist object was done successfully.</p> </dd> </li> <dt><strong><a name="installed" class="item">installed</a></strong> <dd> <p>Flag indicating if the <code>install</code> call to your dist object was done successfully.</p> </dd> </li> <dt><strong><a name="checksums" class="item">checksums</a></strong> <dd> <p>The location of this distributions CHECKSUMS file.</p> </dd> </li> <dt><strong><a name="checksum_ok" class="item">checksum_ok</a></strong> <dd> <p>Flag indicating if the checksums check was done successfully.</p> </dd> </li> <dt><strong><a name="checksum_value" class="item">checksum_value</a></strong> <dd> <p>The checksum value this distribution is expected to have</p> </dd> </li> </dl> <p> </p> <hr /> <h1><a name="methods">METHODS</a></h1> <p> </p> <h2><a name="_self___cpanplus__module__new__options__">$self = CPANPLUS::Module::new( OPTIONS )</a></h2> <p>This method returns a <code>CPANPLUS::Module</code> object. Normal users should never call this method directly, but instead use the <code>CPANPLUS::Backend</code> to obtain module objects.</p> <p>This example illustrates a <code>new()</code> call with all required arguments:</p> <pre> CPANPLUS::Module->new( module => 'Foo', path => 'authors/id/A/AA/AAA', package => 'Foo-1.0.tgz', author => $author_object, _id => INTERNALS_OBJECT_ID, );</pre> <p>Every accessor is also a valid option to pass to <code>new</code>.</p> <p>Returns a module object on success and false on failure.</p> <p> </p> <h2><a name="_mod__package_name">$mod->package_name</a></h2> <p>Returns the name of the package a module is in. For <code>Acme::Bleach</code> that might be <code>Acme-Bleach</code>.</p> <p> </p> <h2><a name="_mod__package_version">$mod->package_version</a></h2> <p>Returns the version of the package a module is in. For a module in the package <code>Acme-Bleach-1.1.tar.gz</code> this would be <code>1.1</code>.</p> <p> </p> <h2><a name="_mod__package_extension">$mod->package_extension</a></h2> <p>Returns the suffix added by the compression method of a package a certain module is in. For a module in <code>Acme-Bleach-1.1.tar.gz</code>, this would be <code>tar.gz</code>.</p> <p> </p> <h2><a name="_mod__package_is_perl_core">$mod->package_is_perl_core</a></h2> <p>Returns a boolean indicating of the package a particular module is in, is actually a core perl distribution.</p> <p> </p> <h2><a name="_mod__module_is_supplied_with_perl_core___version_________">$mod->module_is_supplied_with_perl_core( [version => $]] )</a></h2> <p>Returns a boolean indicating whether <code>ANY VERSION</code> of this module was supplied with the current running perl's core package.</p> <p> </p> <h2><a name="_mod__is_bundle">$mod->is_bundle</a></h2> <p>Returns a boolean indicating if the module you are looking at, is actually a bundle. Bundles are identified as modules whose name starts with <code>Bundle::</code>.</p> <p> </p> <h2><a name="_mod__is_third_party">$mod->is_third_party</a></h2> <p>Returns a boolean indicating whether the package is a known third-party module (i.e. it's not provided by the standard Perl distribution and is not available on the CPAN, but on a third party software provider). See <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/Module/ThirdParty.html">the Module::ThirdParty manpage</a> for more details.</p> <p> </p> <h2><a name="_mod__third_party_information">$mod->third_party_information</a></h2> <p>Returns a reference to a hash with more information about a third-party module. See the documentation about <code>module_information()</code> in <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/Module/ThirdParty.html">the Module::ThirdParty manpage</a> for more details.</p> <p> </p> <h2><a name="_clone____self__clone">$clone = $self->clone</a></h2> <p>Clones the current module object for tinkering with. It will have a clean <code>CPANPLUS::Module::Status</code> object, as well as a fake <code>CPANPLUS::Module::Author</code> object.</p> <p> </p> <h2><a name="_where____self__fetch">$where = $self->fetch</a></h2> <p>Fetches the module from a CPAN mirror. Look at <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/CPANPLUS/Internals/Fetch/_fetch().html">the CPANPLUS::Internals::Fetch::_fetch() manpage</a> for details on the options you can pass.</p> <p> </p> <h2><a name="_path____self__extract">$path = $self->extract</a></h2> <p>Extracts the fetched module. Look at <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/CPANPLUS/Internals/Extract/_extract().html">the CPANPLUS::Internals::Extract::_extract() manpage</a> for details on the options you can pass.</p> <p> </p> <h2><a name="_type____self__get_installer_type__prefer_makefile____bool__">$type = $self->get_installer_type([prefer_makefile => BOOL])</a></h2> <p>Gets the installer type for this module. This may either be <code>build</code> or <code>makemaker</code>. If <code>Module::Build</code> is unavailable or no installer type is available, it will fall back to <code>makemaker</code>. If both are available, it will pick the one indicated by your config, or by the <code>prefer_makefile</code> option you can pass to this function.</p> <p>Returns the installer type on success, and false on error.</p> <p> </p> <h2><a name="_dist____self__dist__target_____prepare_create___format____distribution_type__args_____key____val____">$dist = $self->dist([target => 'prepare|create', format => DISTRIBUTION_TYPE, args => {key => val}]);</a></h2> <p>Create a distribution object, ready to be installed. Distribution type defaults to your config settings</p> <p>The optional <code>args</code> hashref is passed on to the specific distribution types' <code>create</code> method after being dereferenced.</p> <p>Returns a distribution object on success, false on failure.</p> <p>See <code>CPANPLUS::Dist</code> for details.</p> <p> </p> <h2><a name="_bool____mod__prepare___">$bool = $mod->prepare( )</a></h2> <pre> Convenience method around C<install()> that prepares a module without actually building it. This is equivalent to invoking C<install> with C<target> set to C<prepare></pre> <p>Returns true on success, false on failure.</p> <p> </p> <h2><a name="_bool____mod__create___">$bool = $mod->create( )</a></h2> <p>Convenience method around <code>install()</code> that creates a module. This is equivalent to invoking <code>install</code> with <code>target</code> set to <code>create</code></p> <p>Returns true on success, false on failure.</p> <p> </p> <h2><a name="_bool____mod__test___">$bool = $mod->test( )</a></h2> <p>Convenience wrapper around <code>install()</code> that tests a module, without installing it. It's the equivalent to invoking <code>install()</code> with <code>target</code> set to <code>create</code> and <code>skiptest</code> set to <code>0</code>.</p> <p>Returns true on success, false on failure.</p> <p> </p> <h2><a name="_bool____self__install___target_____prepare_create_install___format____format_type__extractdir____directory__fetchdir____directory__prefer_bin____bool__force____bool__verbose____bool___________">$bool = $self->install([ target => 'prepare|create|install', format => FORMAT_TYPE, extractdir => DIRECTORY, fetchdir => DIRECTORY, prefer_bin => BOOL, force => BOOL, verbose => BOOL, ..... ]);</a></h2> <p>Installs the current module. This includes fetching it and extracting it, if this hasn't been done yet, as well as creating a distribution object for it.</p> <p>This means you can pass it more arguments than described above, which will be passed on to the relevant methods as they are called.</p> <p>See <code>CPANPLUS::Internals::Fetch</code>, <code>CPANPLUS::Internals::Extract</code> and <code>CPANPLUS::Dist</code> for details.</p> <p>Returns true on success, false on failure.</p> <p>Returns a list of module objects the Bundle specifies.</p> <p>This requires you to have extracted the bundle already, using the <a href="#extract"><code>extract()</code></a> method.</p> <p>Returns false on error.</p> <p> </p> <h2><a name="_text____self__readme">$text = $self->readme</a></h2> <p>Fetches the readme belonging to this module and stores it under <a href="#status"><code>$obj->status->readme</code></a>. Returns the readme as a string on success and returns false on failure.</p> <p> </p> <h2><a name="_version____self__installed_version__">$version = $self-><code>installed_version()</code></a></h2> <p>Returns the currently installed version of this module, if any.</p> <p> </p> <h2><a name="_where____self__installed_file__">$where = $self-><code>installed_file()</code></a></h2> <p>Returns the location of the currently installed file of this module, if any.</p> <p> </p> <h2><a name="_bool____self__is_uptodate__version____version_number__">$bool = $self->is_uptodate([version => VERSION_NUMBER])</a></h2> <p>Returns a boolean indicating if this module is uptodate or not.</p> <p> </p> <h2><a name="_href____self__details__">$href = $self-><code>details()</code></a></h2> <p>Returns a hashref with key/value pairs offering more information about a particular module. For example, for <code>Time::HiRes</code> it might look like this:</p> <pre> Author Jarkko Hietaniemi (jhi@iki.fi) Description High resolution time, sleep, and alarm Development Stage Released Installed File /usr/local/perl/lib/Time/Hires.pm Interface Style plain Functions, no references used Language Used C and perl, a C compiler will be needed Package Time-HiRes-1.65.tar.gz Public License Unknown Support Level Developer Version Installed 1.52 Version on CPAN 1.65</pre> <p> </p> <h2><a name="_list____self__contains__">@list = $self-><code>contains()</code></a></h2> <p>Returns a list of module objects that represent the modules also present in the package of this module.</p> <p>For example, for <code>Archive::Tar</code> this might return:</p> <pre> Archive::Tar Archive::Tar::Constant Archive::Tar::File</pre> <p> </p> <h2><a name="_list_of_hrefs____self__fetch_report__">@list_of_hrefs = $self-><code>fetch_report()</code></a></h2> <p>This function queries the CPAN testers database at <em><a href="http://testers.cpan.org/">http://testers.cpan.org/</a></em> for test results of specified module objects, module names or distributions.</p> <p>Look at <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/CPANPLUS/Internals/Report/_query_report().html">the CPANPLUS::Internals::Report::_query_report() manpage</a> for details on the options you can pass and the return value to expect.</p> <p> </p> <h2><a name="_bool____self__uninstall__type_____all_man_prog__">$bool = $self->uninstall([type => [all|man|prog])</a></h2> <p>This function uninstalls the specified module object.</p> <p>You can install 2 types of files, either <code>man</code> pages or <code>prog</code>ram files. Alternately you can specify <code>all</code> to uninstall both (which is the default).</p> <p>Returns true on success and false on failure.</p> <p>Do note that this does an uninstall via the so-called <code>.packlist</code>, so if you used a module installer like say, <code>ports</code> or <code>apt</code>, you should not use this, but use your package manager instead.</p> <p> </p> <h2><a name="_modobj____self__distributions__">@modobj = $self-><code>distributions()</code></a></h2> <p>Returns a list of module objects representing all releases for this module on success, false on failure.</p> <p> </p> <h2><a name="_list____self__files___">@list = $self->files ()</a></h2> <p>Returns a list of files used by this module, if it is installed.</p> <p> </p> <h2><a name="_list____self__directory_tree___">@list = $self->directory_tree ()</a></h2> <p>Returns a list of directories used by this module.</p> <p> </p> <h2><a name="_list____self__packlist___">@list = $self->packlist ()</a></h2> <p>Returns the <code>ExtUtils::Packlist</code> object for this module.</p> <p> </p> <h2><a name="_list____self__validate___">@list = $self->validate ()</a></h2> <p>Returns a list of files that are missing for this modules, but are present in the .packlist file.</p> <p> </p> <h2><a name="_bool____self__add_to_includepath_">$bool = $self->add_to_includepath;</a></h2> <p>Adds the current modules path to <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlvar.html#_inc"><code>@INC</code></a> and <code>$PERL5LIB</code>. This allows you to add the module from it's build dir to your path.</p> <p>You can reset <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlvar.html#_inc"><code>@INC</code></a> and <code>$PERL5LIB</code> to it's original state when you started the program, by calling:</p> <pre> $self->parent->flush('lib'); =cut</pre> <p>sub add_to_includepath { my $self = shift; my $cb = $self->parent;</p> <pre> if( my $dir = $self->status->extract ) {</pre> <pre> $cb->_add_to_includepath( directories => [ File::Spec->catdir(BLIB->($dir), LIB), File::Spec->catdir(BLIB->($dir), ARCH), BLIB->($dir), ] ) or return;</pre> <pre> } else { error(loc( "No extract dir registered for '%1' -- can not add ". "add builddir to search path!", $self->module )); return; }</pre> <pre> return 1;</pre> <p>}</p> <p> </p> <h2><a name="_path____self__best_path_to_module_build___">$path = $self-><code>best_path_to_module_build()</code>;</a></h2> <p><strong>OBSOLETE</strong></p> <p>If a newer version of Module::Build is found in your path, it will return this <code>special</code> path. If the newest version of <code>Module::Build</code> is found in your regular <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlvar.html#_inc"><code>@INC</code></a>, the method will return false. This indicates you do not need to add a special directory to your <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlvar.html#_inc"><code>@INC</code></a>.</p> <p>Note that this is only relevant if you're building your own <code>CPANPLUS::Dist::*</code> plugin -- the built-in dist types already have this taken care of.</p> <p> </p> <hr /> <h1><a name="bug_reports">BUG REPORTS</a></h1> <p>Please report bugs or other issues to <<a href="mailto:bug-cpanplus@rt.cpan.org<gt>">bug-cpanplus@rt.cpan.org<gt></a>.</p> <p> </p> <hr /> <h1><a name="author">AUTHOR</a></h1> <p>This module by Jos Boumans <<a href="mailto:kane@cpan.org">kane@cpan.org</a>>.</p> <p> </p> <hr /> <h1><a name="copyright">COPYRIGHT</a></h1> <p>The CPAN++ interface (of which this module is a part of) is copyright (c) 2001 - 2007, Jos Boumans <<a href="mailto:kane@cpan.org">kane@cpan.org</a>>. All rights reserved.</p> <p>This library is free software; you may redistribute and/or modify it under the same terms as Perl itself.</p> <table border="0" width="100%" cellspacing="0" cellpadding="3"> <tr><td class="block" style="background-color: #cccccc" valign="middle"> <big><strong><span class="block"> ../lib/CPANPLUS/Module.pm</span></strong></big> </td></tr> </table> </body> </html>
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de