首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Perl hashref打印键

Perl hashref打印键
EN

Stack Overflow用户
提问于 2012-09-29 01:07:09
回答 1查看 2.6K关注 0票数 1

我有以下hashref:

代码语言:javascript
复制
my $hashref = {'a'=>(1,2,3,4),
               'b'=>(5,6,7,8)};

然后,我使用以下代码来打印密钥(即'a‘和'b'):

代码语言:javascript
复制
foreach (keys %$hashref){
   print "\n".$_."\n";
}

这将打印以下输出:

代码语言:javascript
复制
4

a

7

2

5

尝试使用Data::Dumper打印数据结构hashref会得到以下输出:-

代码语言:javascript
复制
$VAR1 = {
          '4' => 'b',
          'a' => 1,
          '7' => 8,
          '2' => 3,
          '5' => 6
       };

我的问题是:

1)如何打印正确的密钥,即'a‘和'b’。2)为什么数据结构看起来像上面的输出,而不像上面的输出:-

代码语言:javascript
复制
$VAR1 = {
           'a' => (1,2,3,4),
           'b' => (5,6,7,8)
        };
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-29 01:16:45

您定义的哈希是错误的。它解释了这个:

代码语言:javascript
复制
'a'=>(1,2,3,4),
'b'=>(5,6,7,8)

作为10个元素的简单列表。(请记住,散列也可以使用简单列表声明,=>运算符是可选的。)相反,使用方括号将值转换为arrayref字面量:

代码语言:javascript
复制
'a'=>[1,2,3,4],
'b'=>[5,6,7,8]

哪个Data::Dumper应该调用:

代码语言:javascript
复制
$VAR1 = {
   'a' => [1,2,3,4],
   'b' => [5,6,7,8]
};
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12644402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档