如何判断我的Perl脚本是否在Windows下运行?

kno*_*orv 9 windows perl

以编程方式确定Perl脚本是否在基于Windows的系统(Win9x,WinXP,Vista,Win7等)上执行的最佳方法是什么?

在这里填空:

my $running_under_windows = ... ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)

Chr*_*utz 15

来自perldoc perlvar:

  • $OSNAME
  • $^O

构建此Perl副本的操作系统的名称,在配置过程中确定.该值与之相同$Config{'osname'}.另请参阅perlrun中记录的Config和-V命令行开关.

在Windows平台上,$^O不是很有帮助:因为它始终是MSWin32,它不能区分95/98/ME/NT/2000/XP/CE/.NET.使用Win32::GetOSName()Win32::GetOSVersion()(参见Win32perlport)来区分变体.

  • mobrule:在Cygwin下的$ ^ O eq'MSWin32'. (2认同)

hil*_*llu 6

$^O eq 'MSWin32'
Run Code Online (Sandbox Code Playgroud)

(来源:手册perlvar页)