使用Win32 :: Registry在Linux机器上出现问题

我的Perl脚本必须在Windows和Linux服务器上运行。 脚本运行时,我必须更新registry的具体事情。 当我使用“使用Win32 ::registry”它在Windows上工作正常,但在Linux上它会给出错误,无论以下如果语句。

if ($OS =~ /Windows/ ) { use Win32::Registry; ... ... } 

在我看来,perl在编译时会加载“use”,这一定是问题所在。 我能做什么,以便Perl在Linux上运行时不加载使用win 32命令?

我试过使用

 if ($OS =~ /Windows/ ) { require Win32::Registry; ... ... } 

与此,脚本在两台服务器上运行正常,但它保存在registry中的二进制值,而不是string值。

那么如何让Perl脚本在两台服务器上运行并在registry中保存string值呢?

谢谢。

 use Foo; 

 BEGIN { require Foo; import Foo; } 

所以使用

 BEGIN { if ($OS =~ /Windows/) require Win32::Registry; import Win32::Registry; } } 

要么

 use if $OS =~ /Windows/, 'Win32::Registry'; 
  • use
  • if编译