gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 11:08:48 25 4
gpt4 key购买 nike

我的 perl 脚本必须在 Windows 和 Linux 服务器上运行。随着脚本的运行,我必须为特定的事情更新注册表。当我使用“使用 Win32::Registry”时,它在 Windows 上运行良好,但在 Linux 上,无论以下 if 语句如何,它都会出错。

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

在我看来,perl 在编译时加载“使用”,这一定是问题所在。我该怎么做才能让 Perl 在 Linux 上运行时不加载 use 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';

关于windows - 使用 Win32::Registry 在 Linux 机器中出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12535154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com