Проблема заключается в файле https.conf!
# Virtual hosts
# Include conf/extra/httpd-vhosts.conf
Ошибка возникает, когда hash (#) удаляется или запутывается. Эти две строки должны отображаться, как показано выше.
Исследуйте $^O
переменная, которая будет содержать название операционной системы:
print "$^O\n";
, Который печатает linux
на Linux и MSWin32
в Windows.
можно также обратиться к этой переменной именем $OSNAME
, если Вы используете английский язык модуль:
use English qw' -no_match_vars ';
print "$OSNAME\n";
Согласно [1 115] perlport, $^O
будет darwin
на Mac OS X.
можно также использовать Конфигурация базовый модуль, который может предоставить ту же информацию (и намного больше):
use Config;
print "$Config{osname}\n";
print "$Config{archname}\n";
, Который на моей печати машины Ubuntu:
linux
i486-linux-gnu-thread-multi
Примечание, что эта информация основана на системе, что Perl был , создало , который является не обязательно, системный Perl в настоящее время работает (то же верно для [1 118] $^O
и $OSNAME
); ОС не будет, вероятно, отличаться, но некоторая информация, как имя архитектуры, может быть.
При необходимости в более определенной информации о Windows, это может помочь.
my $osname = $^O;
if( $osname eq 'MSWin32' ){{
eval { require Win32; } or last;
$osname = Win32::GetOSName();
# work around for historical reasons
$osname = 'WinXP' if $osname =~ /^WinXP/;
}}
Полученный от sysinfo.t, который я записал исходной версии.
, Если Вам нужна более подробная информация:
my ( $osvername, $major, $minor, $id ) = Win32::GetOSVersion();
Sys:: Информация:: ОС похожа на относительно чистое потенциальное решение, но в настоящее время, кажется, не поддерживает Mac. Это не должно быть слишком много работы для добавления этого все же.
Посмотрите в источнике для File::Spec
, чтобы видеть, как он загружает правильного делегата на основе операционной системы.:)
File::Spec
имеет отдельный файл модуля Perl для каждой ОС. File::Spec::Win32
, File::Spec::OS2
, и т.д.
Это проверяет операционную систему и загрузит соответствующее .pm
файл во времени выполнения на основе ОС.
# From the source code of File::Spec
my %module = (
MSWin32 => 'Win32',
os2 => 'OS2',
VMS => 'VMS',
NetWare => 'Win32', # Yes, File::Spec::Win32 works on NetWare.
symbian => 'Win32', # Yes, File::Spec::Win32 works on symbian.
dos => 'OS2', # Yes, File::Spec::OS2 works on DJGPP.
cygwin => 'Cygwin',
amigaos => 'AmigaOS');
my $module = $module{$^O} || 'Unix';
require "File/Spec/$module.pm";
our @ISA = ("File::Spec::$module");
Переменный $ ^O (это - капитал 'O', не нуль) содержит название операционной системы.
В зависимости от того, что Вы хотите, это может или не может дать ответ, который Вы хотите - в моей системе, которую это дает 'Linux', не говоря который дистрибутив. Я не так уверен в том, что это говорит относительно Windows или MacOS.
Вот справочник о том, как найти ОС, которую локальная машина выполняет от Perl.
$ ^O переменная ($OSTYPE при использовании английского языка) содержит операционную систему, для которой был создан двоичный файл жемчуга.