I tested this snippet locally without modification, other than substituting my email address and adding use strict/warnings/MIME::Lite.
I succesfully tested sending a mail with a tar file created by both my native tar binary and Archive::Tar. Both mails were received, and untarring the file on the other end worked fine.
The only failure I encountered was when I did not add any files to the newfile.tar. A file created with this:
perl -MArchive::Tar -e '$t = Archive::Tar->new(); $t->write("newfile.t
Yielded the following when reading the file with tar -tf:
tar: Cannot identify format. Searching...
tar: End of archive volume 1 reached
tar: Sorry, unable to determine archive format.
These tests were performed on OpenBSD 3.5, perl 5.8.2, Archive::Tar 1.10, MIME::Lite 3.01. Mails were read with mutt and gmail.