---
name: "Archive::Any::Create"
section: "3pm"
platform: "linux"
package: "libarchive-any-create-perl"
version: "0.3-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Archive::Any::Create"
---

# Archive::Any::Create(3pm)

Abstract API to create archives (tar.gz and zip)

## NAME

Archive::Any::Create - Abstract API to create archives (tar.gz and zip)

## SYNOPSIS

```
  use Archive::Any::Create;
  my $archive = Archive::Any::Create->new;
  $archive->container('foo');               # top-level directory
  $archive->add_file('bar.txt', $data);     # foo/bar.txt
  $archive->add_file('bar/baz.txt', $data); # foo/bar/baz.txt
  $archive->write_file('foo.tar.gz');
  $archive->write_file('foo.zip');
  $archive->write_filehandle(\*STDOUT, 'tar.gz');
```

## DESCRIPTION

Archive::Any::Create is a wrapper module to create tar/tar.gz/zip files with a single easy-to-use API.

## METHODS

- new

  Create new Archive::Any::Create object. No parameters.

- container($dir)

  Specify a top-level directory (or folder) to contain multiple files. Not necessary but recommended to create a good-manner archive file.

- add\_file($file, $data)

  Add a file that contains `$data` as its content. `$file` can be a file in the nested subdirectory.

- write\_file($filename)

  Write an archive file named `$filename`. This method is DWIMmy, in the sense that it automatically dispatches archiving module based on its filename. So, `"$archive->write_file("foo.tar.gz")"` will create a tarball and `"$archive->write_file("foo.zip")"` will create a zip file with the same contents.

- write\_filehandle($fh, $format)

  Write an archive data stream into filehandle. `$format` is either, *tar*, *tar.gz* or *zip*.

## AUTHOR

Tatsuhiko Miyagawa \<miyagawa@bulknews.net\>

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

## SEE ALSO

Archive::Any, Archive::Tar, Archive::Zip
