gpt4 book ai didi

json - Perl:线程与 JSON

转载 作者:行者123 更新时间:2023-12-01 10:18:09 24 4
gpt4 key购买 nike

下面列出的程序因以下错误而失败:

JSON text must be an object or array (but found number, string, true, false or null, use allow_nonref to allow this) at json_test.pl line 10.

当我注释掉线程启动/加入时,或者在线程运行之前解析 JSON 时,工作正常。消息似乎来自 JSON 库,所以我想它有问题。知道发生了什么以及如何解决它吗?

# json_test.pl
use strict;
use warnings;
use threads;
use JSON;
use Data::Dumper;

my $t = threads->new(\&DoSomething);
my $str = '{"category":"dummy"}';
my $json = JSON->new();
my $data = $json->decode($str);
print Dumper($data);
$t->join();

sub DoSomething
{
sleep 10;
return 1;
}

最佳答案

如果已安装,JSON 使用 JSON::XS not compatible with Perl threads (请不要只相信作者的话——线程不被鼓励并且难以有效使用,但并未被弃用,也没有删除它们的计划)。社区首选的分支 Cpanel::JSON::XS is thread safe并将被 JSON::MaybeXS 使用默认情况下,这是 JSON 的主要替代品。

关于json - Perl:线程与 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58963299/

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