perl – 哈希的共享Hashref可能吗?
发布时间:2020-12-16 06:16:41 所属栏目:大数据 来源:网络整理
导读:我试图使用哈希的hashref存储持久字段和更改该字段的时间戳. 它需要共享,因为我有2个线程需要访问它,虽然只有一个设置值. 这是我当前的代码,其中包含几个注释掉的变体: my $status = {};share($status);sub get_status { my($raid) = @_; return $status-{$
我试图使用哈希的hashref存储持久字段和更改该字段的时间戳.
它需要共享,因为我有2个线程需要访问它,虽然只有一个设置值. 这是我当前的代码,其中包含几个注释掉的变体: my $status = {}; share($status); sub get_status { my($raid) = @_; return $status->{$raid}->{status} if exists $status->{$raid}; return 1; } sub set_status { my($raid,$newstatus) = @_; my %t; $t{status} = $newstatus; $t{timestamp} = Time::HiRes::time; $status->{$raid} = %t; #$status->{$raid} = { #status => $newstatus,#timestamp => Time::HiRes::time() #}; #$status->{$raid}->{status}=$newstatus; #$status->{$raid}->{timestamp} = Time::HiRes::time; return 1; } set_status('680','1'); get_status('680'); 我不断在./hashtest第19行获得共享标量的无效值. 有人可以帮忙吗:D? 解决方法
This perlmonks page应该解释这个问题.其中一篇帖子声称:
你可以尝试这样的事情: share( %t ); $status->{ $raid } = %t; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |