Проверьте переменную $^O
, которая будет содержать имя операционной системы:
print "$^O\n";
Что печатает linux
в Linux и MSWin32
в Windows.
Вы также можете ссылаться на эту переменную по имени $OSNAME
, если используете модуль English :
use English qw' -no_match_vars ';
print "$OSNAME\n";
Согласно perlport , $^O
будет darwin
в Mac OS X.
Вы также можете использовать основной модуль Config , который может предоставлять ту же информацию (и многое другое):
use Config;
print "$Config{osname}\n";
print "$Config{archname}\n";
Который на моей машине с Ubuntu печатает:
linux
i486-linux-gnu-thread-multi
Обратите внимание, что эта информация основана на системе, в которой Perl был построен , которая не обязательно является системой, в которой в настоящее время работает Perl (то же самое верно для $^O
и $OSNAME
); ОС вряд ли будет отличаться, но некоторая информация, такая как имя архитектуры, вполне может быть.