Ho bisogno di creare un archivio Zip dopo aver filtrato l'elenco dei file che voglio includere. Preferibilmente il modulo dovrebbe funzionare sia in Windows che in Linux.Come posso creare un archivio Zip in Perl?
Dal momento che è necessario filtrare l'elenco dei file, non voglio veramente utilizzare un programma esterno. Preferisco non introdurre dipendenze esterne, così posso compilare lo script in un singolo file eseguibile su Windows (usando ActiveState PDK).
Quello che ho già provato
Fino ad ora ho usato Archive::Zip trovato su CPAN ma ha un importante bug su computer Windows che utilizzano nomi di file non-ASCII: i nomi dei file corrotti in archivio come don essere tradotto in unicode
C'è uno bug report filed per quello ma non è stato aggiornato in più di 10 mesi e nella documentazione del modulo lo sviluppatore è piuttosto scortese (del tipo "aggiusta il tuo computer o sbarazzati di Windows").
Aggiornamento:
Grazie ai chiarimenti da Brian e Alan Aggeo Alavi sembra che abbastanza amore viene messo in Archive::Zip
per ottenere questi insetti fuori presto e, infine, hanno un modulo zip pienamente funzionante in Windows.
Zip è un formato molto vecchio e non sono completamente sicuro che sia in grado di gestire caratteri non ANSI. Se la lingua che stai usando come target utilizza almeno parzialmente l'alfabeto latino (cioè non cinese), dovresti provare a convertire i nomi dei file nelle loro controparti latine standard. –
In realtà ci sono state delle disposizioni nelle specifiche per memorizzare la versione utf8 del nome file. Puoi leggerlo nell'Appendice D di http://www.pkware.com/documents/casestudies/APPNOTE.TXT –
Hai aggiornato tutte le dipendenze di Archive :: Zip? –