Archive::Tar::Streamed - Tar archives, non memory resident


  use Archive::Tar::Streamed;

  my $fh;
  open $fh,'>','/home/myarch.tar' or die "Couldn't create archive";
  binmode $fh;
  my $tar = Archive::Tar::Streamed->new($fh);

  my $fh2l
  open $fh2,'<','prevarch.tar' or die "Couldn't open archive";
  binmode $fh;
  my $tar2 = Archive::Tar::Streamed->new($fh2);
  my $fil = $tar2->next;


The Archive::Tar module is a powerfull tool for manipulating archives from perl. However, most of the time, this module needs the entire archive to be resident in memory. This renders the module per se, not to be directly usable for very large archive (of the order of gigabytes).

Archive::Tar::Streamed provides a wrapper, which allows working with tar archives on disk, with no need for the archive to be memory resident.

This module provides an alternative answer to the FAQ "Isn't Archive::Tar heavier on memory than /bin/tar?". It also aims to be portable, and available on platforms without a native tar.


This is a method call to add one or more files to an archive. These are written to disk before the method returns.


This method is an iterator, which returns an Archive::Tar::File object for the next file, or undef. undef indicates the end of the archive; any unexpected conditions result in throwing an exception.


Please use to report any bugs in this module


        I. Williams


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

The full text of the license can be found in the LICENSE file included with this module.