我的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
编译