#!/usr/bin/perl -w use strict; use Archive::Tar; use File::Find; my $tar = Archive::Tar->new(); my $dir = 'somedir'; #some dir with recursive dirs and files my @files; find (\&found,$dir); sub found{ push @files,$File::Find::name; } $tar->add_files(@files); $tar->write('Tmytest2.tgz',9); exit;