I have not seen anything yet which indicates that this problem has anything to do with Archive::Zip. What is important here is the fact that your CGI scripts run as www, so the www user must have write permission in the locations specified in your scripts.
You will make your life easier as well as more secure if you set up a development environment which has the same underlying directory structure & permissions as your target production environment, rather than writing test files in random places on your hard drive. :)