首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >perl -如何循环访问hashref?

perl -如何循环访问hashref?
EN

Stack Overflow用户
提问于 2016-06-10 12:39:14
回答 1查看 185关注 0票数 1

我有一些hashref格式的数据。我从graph.facebook.com获取数据如何循环访问?

代码语言:javascript
复制
$var = \{
            'data' => [
                        {
                          'id' => '312351465029_10154168935475030',
                          'name' => 'Timeline Photos 1'
                        },
                        {
                          'name' => 'Bangchak\'s cover photo',
                          'id' => '312351465029_10154168087455030',
                        },
                        {
                          'id' => '312351465029_10154168081875030',
                          'name' => 'Timeline Photos 2',
                        }
                      ],
            'paging' => {
                          'previous' => 'https://graph.facebook.com/v2.6/312351465029/2',
                          'next' => 'https://graph.facebook.com/v2.6/312351465029/3'
                        }
          };

这些代码不管用。

代码语言:javascript
复制
foreach $m ($var->{data})
{
    if ( $m->{name} =~ /Timeline/i )
    {
        print "id = $m->{id}\n";
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-10 12:42:48

您需要取消数组(perldoc perldsc)的引用:

代码语言:javascript
复制
use warnings;
use strict;

my $var = {
            'data' => [
                        {
                          'id' => '312351465029_10154168935475030',
                          'name' => 'Timeline Photos 1'
                        },
                        {
                          'name' => 'Bangchak\'s cover photo',
                          'id' => '312351465029_10154168087455030',
                        },
                        {
                          'id' => '312351465029_10154168081875030',
                          'name' => 'Timeline Photos 2',
                        }
                      ],
            'paging' => {
                          'previous' => 'https://graph.facebook.com/v2.6/312351465029/2',
                          'next' => 'https://graph.facebook.com/v2.6/312351465029/3'
                        }
          };

foreach my $m (@{ $var->{data} }) {
    if ( $m->{name} =~ /Timeline/i )
    {
        print "id = $m->{id}\n";
    }
}

__END__

id = 312351465029_10154168935475030
id = 312351465029_10154168081875030
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37748531

复制
相关文章

相似问题

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