作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在继续讨论here , 我遇到了一些问题 lock_hash_recurse
如下图所示:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use Hash::Util qw (lock_keys);
my $hashref = {A=>1, B=>{CC=>22, DD=>33}};
lock_keys(%{$hashref}); # this is OK
Hash::Util::lock_hash_recurse(%{$hashref}); # this fails: "Use of uninitialized value in string eq at /usr/lib/perl/5.10/Hash/Util.pm line 153."
reftype
返回
undef
...这是
lock_hash_recurse
中的一个错误吗? (也许这就是它没有被导出的原因?...)
最佳答案
这是 Hash::Util
中的一个错误.代码说:
sub lock_hashref_recurse {
my $hash = shift;
lock_ref_keys($hash);
foreach my $value (values %$hash) {
if (reftype($value); eq 'HASH') {
lock_hashref_recurse($value);
}
Internals::SvREADONLY($value,1);
}
return $hash
}
sub lock_hashref_recurse {
my $hash = shift;
lock_ref_keys($hash);
foreach my $value (values %$hash) {
my $type = reftype($value);
if (defined $type and $type eq 'HASH') {
lock_hashref_recurse($value);
}
Internals::SvREADONLY($value,1);
}
return $hash
}
Scalar::Util::reftype
返回
undef
,而不是空字符串。补丁已发送到 p5p。看起来不像
Hash::Util
是一个双重生命(在核心和 CPAN 中)模块,因此您必须升级到修复它的 Perl 5 版本。我建议要么自己修补代码,要么编写自己的版本。
Internals
包中的东西)。使用
Readonly::XS
取而代之的是模块。
关于perl - 如何在 Perl 中使用 `lock_hash_recurse`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3727619/
在继续讨论here , 我遇到了一些问题 lock_hash_recurse如下图所示: #!/usr/bin/perl use strict; use warnings; use Data::Dum
我是一名优秀的程序员,十分优秀!