CPANPLUS::Internals::Extract
### for source files ### $self->_gunzip( file => 'foo.gz', output => 'blah.txt' ); ### for modules/packages ### $dir = $self->_extract( module => $modobj, extractdir => '/some/where' );
CPANPLUS::Internals::Extract extracts compressed files for CPANPLUS. It can do this by either a pure perl solution (preferred) with the use of Archive::Tar and Compress::Zlib, or with binaries, like gzip and tar.
Archive::Tar
Compress::Zlib
gzip
tar
The flow looks like this:
$cb->_extract Delegate to Archive::Extract
_extract will take a module object and extract it to extractdir if provided, or the default location which is obtained from your config.
_extract
extractdir
The file name is obtained by looking at $modobj->status->fetch and will be parsed to see if it's a tar or zip archive.
$modobj->status->fetch
If it's a zip archive, __unzip will be called, otherwise __untar will be called. In the unlikely event the file is of neither format, an error will be thrown.
__unzip
__untar
_extract takes the following options:
A CPANPLUS::Module object. This is required.
CPANPLUS::Module
The directory to extract the archive to. By default this looks something like: /CPANPLUS_BASE/PERL_VERSION/BUILD/MODULE_NAME
A flag indicating whether you prefer a pure perl solution, ie Archive::Tar or Archive::Zip respectively, or a binary solution like unzip and tar.
Archive::Zip
unzip
The path to the perl executable to use for any perl calls. Also used to determine the build version directory for extraction.
Specifies whether to be verbose or not. Defaults to your corresponding config entry.
Specifies whether to force the extraction or not. Defaults to your corresponding config entry.
All other options are passed on verbatim to __unzip or __untar.
Returns the directory the file was extracted to on success and false on failure.
To install CPANPLUS, copy and paste the appropriate command in to your terminal.
cpanm
cpanm CPANPLUS
CPAN shell
perl -MCPAN -e shell install CPANPLUS
For more information on module installation, please visit the detailed CPAN module installation guide.