繁体   English   中英

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

[英]use Win32::Registry gives problems in Linux machine

我的perl脚本必须在Windows以及Linux服务器上运行。 在脚本运行时,我必须针对特定内容更新注册表。 当我使用“ use Win32 :: Registry”时,它在Windows上可以正常工作,但在Linux上,无论以下if语句如何,它都会给出错误。

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

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

我尝试使用

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

这样,脚本可以在两台服务器上正常运行,但是它将二进制值保存在注册表中,而不是字符串值。

那么,如何使Perl脚本在两台服务器上运行并将字符串值保存在注册表中?

谢谢。

use Foo;

BEGIN {
   require Foo;
   import Foo;
}

所以用

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

要么

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM