Tin*_*asm 1 linux windows registry perl
我的perl脚本必须在Windows和Linux服务器上运行.在脚本运行时,我必须更新注册表以获取特定内容.当我使用"使用Win32 :: Registry"它在Windows上工作正常,但在Linux上,无论以下if语句如何都会出错.
if ($OS =~ /Windows/ )
{
use Win32::Registry;
...
...
}
Run Code Online (Sandbox Code Playgroud)
在我看来,perl在编译时加载"use",这一定是问题所在.在Linux上运行时,我可以做什么使Perl不加载使用win 32命令?
我试过用
if ($OS =~ /Windows/ )
{
require Win32::Registry;
...
...
}
Run Code Online (Sandbox Code Playgroud)
有了这个,脚本在两台服务器上运行良好,但它在注册表中保存二进制值而不是字符串值.
那么如何在两台服务器上运行Perl脚本并在注册表中保存字符串值?
谢谢.
use Foo;
Run Code Online (Sandbox Code Playgroud)
是
BEGIN {
require Foo;
import Foo;
}
Run Code Online (Sandbox Code Playgroud)
所以用
BEGIN {
if ($OS =~ /Windows/)
require Win32::Registry;
import Win32::Registry;
}
}
Run Code Online (Sandbox Code Playgroud)
要么
use if $OS =~ /Windows/, 'Win32::Registry';
Run Code Online (Sandbox Code Playgroud)