Perl判断操作系统类型

Requirement:

为了扩展系统的可移植性,将Perl Job扩展支持Linux和Unix两种操作系统,由于操作系统不同,那么所调用的命令自然有所差别,那么该如何区分执行哪种命令呢?

Resolution:

利用 $^O 变量来区别不同的操作系统,在不同的操作系统中 $^O 会有不同的值,例如:AIX --- aix, Linux --- linux,SunOS --- solaris。

操作系统及其对应的值参见:http://www.alma.ch/perl/perloses.htm

my $os  =  $^o;

print "Current OS is $os";
if($os eq "linux"){ ...commands in linux OS... } if($os eq "solaris"){ ...commands in Unix OS... }

另外可以使用 $Config{'osname'} 来获取操作系统的值。