Archive::Cpio − module for manipulations of cpio archives


use Archive::Cpio;
# simple example removing entry "foo"
my $cpio = Archive::Cpio−>new;
# more complex example, filtering on the fly
my $cpio = Archive::Cpio−>new;
sub {
my ($e) = @_;
if ($e−>name ne 'foo') {
$cpio−>write_one(\*STDOUT, $e);


Archive::Cpio provides a few functions to read and write cpio files.

Create an object


Reads the cpio file


Writes the entries and the trailer

Removes any entries with names matching any of the given filenames from the in-memory archive

$cpio−>get_files([ @filenames ])
Returns a list of "Archive::Cpio::File" (after a "$cpio−"read>)

Returns the "Archive::Cpio::File" matching "$filename< (after a "$cpio−"read")

$cpio−>add_data($filename, $data, $opthashref)
Takes a filename, a scalar full of data and optionally a reference to a hash with specific options.

Will add a file to the in-memory archive, with name $filename and content $data. Specific properties can be set using $opthashref.

$cpio−>read_with_handler($filehandle, $coderef)
Calls the handler function on each header. An "Archive::Cpio::File" is passed as a parameter

$cpio−>write_one($filehandle, $entry)
Writes a "Archive::Cpio::File" (beware, a valid cpio needs a trailer using "write_trailer")

Writes the trailer to finish the cpio file


Pascal Rigaux <>