perl - 在 Perl 中打印哈希值

当我打印一个变量时,我得到一个 HASH(0xd1007d0) 值。我需要打印所有键和值的值。但是,我不能,因为控件没有进入循环。

foreach my $var(keys %{$HashVariable}){
    print"In the loop \n";
    print"$var and $HashVariable{$var}\n";

}

但是控件甚至没有进入循环。我是 perl 的新手。

最佳答案

我不能完全回答,因为这完全取决于 $HashVariable 中的内容。

判断里面有什么的最简单方法是:

use Data::Dumper;
print Dumper $HashVariable;

假设这是一个散列引用 - 如果print $HashVariable 给出HASH(0xdeadbeef) 作为输出,它就会是。

所以这应该有效:

#!/usr/bin/env perl

use strict;
use warnings;

my $HashVariable = { somekey => 'somevalue' }; 

foreach my $key ( keys %$HashVariable ) { 
   print $key, " => ", $HashVariable->{$key},"\n";
}

您犯的唯一错误是 $HashVariable{$key} 不起作用 - 您需要取消引用,因为它代表 %HashVariable 而不是 $HashVariable,这是两个完全不同的东西。

否则 - 如果它没有进入循环 - 这可能意味着 keys %$HashVariable 没有返回任何东西。这就是 Dumper 测试有用的原因 - 是否有可能您没有正确填充它,或者您正在写入 %HashVariable 代替。

例如:

my %HashVariable;
$HashVariable{'test'} = "foo";

https://stackoverflow.com/questions/43754058/

相关文章:

c# - Unity Particle Collider 与粒子

django - 值错误 : Cannot use Queryset for "": Use a Q

linux - 错误 "caution: filename not matched"- 解压缩命令

python - 如何使用 Python Selenium 获取多个元素的文本内容?

r - 观星者,无输出

qt - 对 `dlsym' 的 undefined reference

angular - HTML5 Websql - 如何与 Ionic 3 和 Angular 4 一

json - JSON 模式中的变量对象名称

r - 在 shinyapps.io 中部署 R 应用程序 - "Error:parsing man

php - 当要比较的元数据是序列化数组时,Wordpress meta_query 值数组?