Perl Programming Documentation
Download Perl
Explore

Manual

- Overview
- Tutorials
- FAQs
- History / Changes
- License

Reference

- Language
- Functions
- Operators
- Special Variables
- Pragmas
- Utilities
- Internals
- Platform Specific

Modules

- A • B • C • D • E
- F • G • H • I • L
- M • N • O • P • S
- T • U • X

Tools

- Preferences

# CPANPLUS::Internals::Extract

Perl 5 version 16.0 documentation
Go to top
Show page index • Show recent pages
Recently read

# CPANPLUS::Internals::Extract

- NAME
- SYNOPSIS
- DESCRIPTION
- METHODS
  - $dir = _extract( module => $modobj, [perl => '/path/to/perl', extractdir => '/path/to/extract/to', prefer_bin => BOOL, verbose => BOOL, force => BOOL] )

# NAME

CPANPLUS::Internals::Extract - internals for archive extraction

# SYNOPSIS

        ### for source files ###    $self->_gunzip( file => 'foo.gz', output => 'blah.txt' );    ### for modules/packages ###    $dir = $self->_extract( module      => $modobj,                            extractdir  => '/some/where' );

# DESCRIPTION

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

The flow looks like this:

        $cb->_extract        Delegate to Archive::Extract

# METHODS

## $dir = _extract( module => $modobj, [perl => '/path/to/perl', extractdir => '/path/to/extract/to', prefer_bin => BOOL, verbose => BOOL, force => BOOL] )

`_extract` will take a module object and extract it to `extractdir` if provided, or the default location which is obtained from your config.

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.

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.

`_extract` takes the following options:

- module

  A `CPANPLUS::Module` object. This is required.

- extractdir

  The directory to extract the archive to. By default this looks something like: /CPANPLUS_BASE/PERL_VERSION/BUILD/MODULE_NAME

- prefer_bin

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

- perl

  The path to the perl executable to use for any perl calls. Also used to determine the build version directory for extraction.

- verbose

  Specifies whether to be verbose or not. Defaults to your corresponding config entry.

- force

  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.

Page index

- NAME
- SYNOPSIS
- DESCRIPTION
- METHODS
  - $dir = _extract( module => $modobj, [perl => '/path/to/perl', extractdir => '/path/to/extract/to', prefer_bin => BOOL, verbose => BOOL, force => BOOL] )