The ptar perl script which comes with Archive::Tar shows you how to do this using File::Find. Relevant fragment:
if( $opts->{c} ) {
my @files;
find( sub { push @files, $File::Find::name;
print $File::Find::name.$/ if $verbose }, @ARGV );
Archive::Tar->create_archive( $file, $compress, @files );
exit;
}
The intelligent reader will judge for himself. Without examining the facts fully and fairly, there is no way of knowing whether vox populi is really vox dei, or merely vox asinorum. — Cyrus H. Gordon