Использование Devel :: CheckOS . Он обрабатывает всю логику и особые случаи для вас. Я обычно делаю что-то вроде:
use Devel::CheckOS qw(die_unsupported os_is);
die "You need Windows to run this program!" unless os_is('MicrosoftWindows');
Семейства «MicrosoftWindows» знают о таких вещах, как Cygwin, поэтому, если вы работаете в Windows, но не в командной строке, os_is()
все равно даст вам правильный ответ.