Al mio script perl, un file viene passato come argomento. Il file può essere un file .txt
o un file .zip
contenente il file .txt
.Come posso controllare l'estensione di un file usando Perl?
voglio scrivere codice che assomigli a questo
if ($file is a zip) {
unzip $file
$file =~ s/zip$/txt/;
}
Un modo per controllare l'estensione è quello di fare una spaccatura sulla .
e quindi abbinare l'ultimo risultato nella matrice (restituito da split).
C'è un modo migliore?
Sei sicuro di voler solo controllare l'estensione? Se speri di testare che tipo di file hai a che fare con te, sarebbe meglio controllare il tipo mime. Dai un'occhiata a qualcosa di simile a questo: http://search.cpan.org/~pmison/File-Type-0.22/lib/File/Type.pm – totels
Chiming con supporto per @totels e un paio delle risposte inferiori . Sono sorpreso da quanti pensano che affidarsi all'estensione sia sicuro ('mv virus.exe hooters.jpg') o robusto (' mv some-huge-dossy-garbage.bin whatever.zip'). Supponendo zip e errori di cattura o esplorando il tipo MIME sono le risposte giuste date. Qualsiasi soluzione che utilizza l'estensione è un errore. – Ashley