NAME

Archive::Peek::Libarchive - Peek into archives without extracting them (using libarchive)

SYNOPSIS

use Archive::Peek::Libarchive;
my $peek = Archive::Peek::Libarchive->new( filename => 'archive.tgz' );
my @files = $peek->files();
my $contents = $peek->file('README.txt')

$peek->iterate(
  sub {
    my ( $filename, $contents ) = @_;
    ...
  }
);

DESCRIPTION

This module lets you peek into archives without extracting them. This is a wrapper to the libarchive C library (http://code.google.com/p/libarchive/), which you must have installed (libarchive-dev package for Debian/Ubuntu). It supports many different archive formats and compression algorithms and is fast.

METHODS

new

The constructor takes the filename of the archive to peek into:

my $peek = Archive::Peek::Libarchive->new( filename => 'archive.tgz' );

files

Returns the files in the archive:

my @files = $peek->files();

file

Returns the contents of a file in the archive:

my $contents = $peek->file('README.txt')

iterate

Iterate over all the files in the archive:

$peek->iterate(
  sub {
    my ( $filename, $contents ) = @_;
    ...
  }
);

ATTRIBUTES

filename

Contains the name of the archive file to use.

AUTHOR

Leon Brocard <acme@astray.com>

COPYRIGHT

Copyright (C) 2011, Leon Brocard.

LICENSE

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