perl 如果检查windows的detail version

perl 如果检查windows的detail version

知道有这个东西
$^O
操作系统名称。
或者
use English;
print $OSNAME;
或者
use Config;
print $Config{'osname'};

但是只能查出是linux还是windows,我现在想查如果是windows,是什么版本的windows,如 win2k3 32bit sp1
哪位写过


QUOTE:
原帖由 huanghaojie 于 2009-1-7 11:04 发表
知道有这个东西
$^O
操作系统名称。
或者
use English;
print $OSNAME;
或者
use Config;
print $Config{'osname'};

但是只能查出是linux还是windows,我现在想查如果是windows,是什么版本的windo ...

perldoc perlvar

QUOTE:
       $OSNAME
       $^O     The name of the operating system under which this copy of Perl was built, as determined during the configuration process.  The value is identical to $Config{'osname'}.  See also Config and the -V command-line switch documented in perlrun.

               In Windows platforms, $^O is not very helpful: since it is always "MSWin32", it doesn't tell the difference between 95/98/ME/NT/2000/XP/CE/.NET.  Use Win32::GetOSName() or Win32::GetOSVersion() (see Win32 and perlport) to distinguish between the variants.

读注册表吧
http://search.cpan.org/~jdb/Win32-0.38/Win32.pm
看来很多人都做过这事吗,呵呵,我去试试.


QUOTE:
原帖由 cobrawgl 于 2009-1-7 11:25 发表
读注册表吧

这个是不是要读好几个地方,


QUOTE:
原帖由 huanghaojie 于 2009-1-7 17:57 发表


这个是不是要读好几个地方,

为嘛不用 Win32 模块提供的接口?


QUOTE:
原帖由 MMMIX 于 2009-1-7 18:27 发表

为嘛不用 Win32 模块提供的接口?

我这里还有很多64位的机器, win32是不是不能认出64位的呀


QUOTE:
原帖由 huanghaojie 于 2009-1-7 19:42 发表


我这里还有很多64位的机器, win32是不是不能认出64位的呀

不知道。你自己看它的文档/试验吧