I don't know if this works - away from my trusty Linuxbox - but it is a good idea. A pure perl Archive::Zip would be a really _brilliant_ idea - great for app packaging.
A few comments just from reading the source:
- It's a good idea to stick to one subroutine naming convention: like_this or likeThis. In Perl, like_this is preferred as more readable.
- You have an OO interface, so why export functions (esp. automatically)? AFAICS Archive::Tar doesn't do this.
- ... especially as you are exporting functions named the same as Perl core functions (e.g. "read")
- Hmm... do you come from Java? I don't see anything wrong with using $this instead of $self, it is just a bit unusual.
- int $verbose == 0: no need. Just and not $verbose would be fine.
- Similarly, return unless fileno $filehandle; is fine, and avoids non-standard brackets.
I'm just looking for nitpicks, you understand. It seems like very nice, clear code.