Perl betiğimde bir dosya bir argüman olarak geçiyor. Dosya, .txt
dosya veya .txt
dosyasını içeren bir .zip
dosya olabilir.Perl kullanarak bir dosyanın uzantısını nasıl kontrol edebilirim?
Ben .
üzerinde bir bölünme yapmak ve sonra da (bölünmüş tarafından döndürülen) dizideki Son sonucu maç etmektir uzantısını kontrol etmek için bu
if ($file is a zip) {
unzip $file
$file =~ s/zip$/txt/;
}
Tek yol gibi görünür kod yazmak istiyorum.
Daha iyi bir yolu var mı?
Sadece uzantıyı kontrol etmek istediğinizden emin misiniz? Eğer ne tür bir dosya ile uğraştığınızı test etmeyi umuyorsanız, mim tipini kontrol etmekten daha iyi olur. Şunun gibi bir şeye bakın: http://search.cpan.org/~pmison/File-Type-0.22/lib/File/Type.pm – totels
@ totels desteği ve birkaç alt yanıtın bir çiftiyle destekleme . Uzatma üzerinde güvenme (ya) mv virus.exe hooters.jpg') ya da sağlam ('mv biraz büyük-dossy-garbage.bin whatever.zip') güveniyor düşünüyorum şaşırıyorum. Zip ve yakalama hataları veya MIME türünü incelemek, verilen doğru cevaplardır. Uzantıyı kullanan herhangi bir çözüm bir hatadır. – Ashley