DOKK / manpages / debian 12 / libarchive-cpio-perl / Archive::Cpio.3pm.en
Archive::Cpio(3pm) User Contributed Perl Documentation Archive::Cpio(3pm)

Archive::Cpio - module for manipulations of cpio archives

    use Archive::Cpio;
    # simple example removing entry "foo"
    my $cpio = Archive::Cpio->new;
    $cpio->read($file);
    $cpio->remove('foo');
    $cio->write($file);
     # more complex example, filtering on the fly
    my $cpio = Archive::Cpio->new;
    $cpio->read_with_handler(\*STDIN,
                sub {
                    my ($e) = @_;
                    if ($e->name ne 'foo') {
                        $cpio->write_one(\*STDOUT, $e);
                    }
                });
    $cpio->write_trailer(\*STDOUT);

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 <pixel@mandriva.com>

2022-11-19 perl v5.36.0