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