У меня есть скрипт Perl, который как один из его заключительных шагов создает сжатую версию созданного им файла. Из-за некоторых неудачных настроек мы не можем гарантировать, что у конкретного клиента будет определенная функция сжатия. Я хочу, чтобы положить что-то вроде этого вместе:Лучший способ запуска внешнего приложения только в том случае, если он существует
if ($has_jar) {
system("jar -c $compressed_file $infile");
}
elsif ($has_zip) {
system("zip -j $compressed_file $infile");
}
else {
copy($infile, $compressed_file);
}
Где, если они не имеют либо из приложений сжатия, она будет просто скопировать файл в расположение сжатого файла без сжатия.
Моя липкая калитка здесь заключается в том, что я не совсем уверен, что лучший способ определить, есть ли у них банка или почтовый индекс. Похоже, я могу использовать exec() вместо system() и воспользоваться тем фактом, что он возвращается только в случае сбоя, но сценарий действительно делает несколько вещей после этого, Работа.
Мне также нужно, чтобы это было переносным решением, так как этот скрипт работает как на Windows, так и на разных дистрибутивах Unix. Заранее спасибо.
будет ли он работать на перлы раньше, чем 5.10.0? –
Да. Пробовали две разные машины и получили 5.8.4 и 5.8.0. – Morinar