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