use strict; use warnings; use File::Find; use File::Basename; use IO::File; use Archive::Tar; testArchive(); sub testArchive { use Archive::Tar; our $tar = Archive::Tar->new(); our @names; my $doc; find (\&wanted, "."); sub wanted { if (-f $File::Find::name) { print "Pushing file '" . $File::Find::name . "'.\n"; push @names, $File::Find::name; } } foreach my $name (@names) { print "Name is '" . $name . "'.\n"; if (open(FILE, "<$name")) { binmode FILE; while () { $doc .= $_; } close (FILE); } else { print "Error: Failed to open '" . $name . "'!\n"; } my @path = fileparse ($name); $name = join ('', $path[0], $path[2]); $tar->add_data($name, $doc); $doc = ''; } $tar->write("test.tar.gz", 1); }