There's Archive::Zip. Or you can run unzip -l and capture the output. Probably best not to bother with a listing though, because it could be abused.
BTW:
http://wakachan.org/junk/archive-7z.png
http://wakachan.org/junk/archive-bz2.png
http://wakachan.org/junk/archive-gz.png
http://wakachan.org/junk/archive-lzh.png
http://wakachan.org/junk/archive-rar.png
http://wakachan.org/junk/archive-zip.png