Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在perl中循环散列并访问包含的数据?_Perl - Fatal编程技术网

如何在perl中循环散列并访问包含的数据?

如何在perl中循环散列并访问包含的数据?,perl,Perl,我有一张单子 my %SERVICES = ( name=> { description => 'Item 1', service_codes => [ 'item1' ], }, name2=> { description =>

我有一张单子

my %SERVICES = (
              name=>
              {
                 description => 'Item 1',
                 service_codes => [ 'item1' ],
              },
              name2=>
              {
                 description => 'Item 2',
                 service_codes => [ 'item2' ],
              },
            );
我需要做的是引用描述并将其打印到名为$service_name的变量中,这样当引用时,文本将读取项目1或项目2


我对perl非常陌生,我正在尽可能地自学。如有任何帮助,将不胜感激,请使用小字。:)

很简单,尝试在数据结构上循环

while ( my ($k, $data) = each %SERVICES ) {
  my $service_name = $data->{description};
  say $service_name;
}
节目:

foreach my $id (keys %SERVICES)
{
  my $des = $SERVICES{$id}{'description'};
  print "$des\n";
}

这是散列,不是列表。我在理解您想要的内容时遇到问题。默认情况下,perl5没有say()函数。可能想加入
使用功能“say”,或者只需使用
打印
谢谢,这会让我朝着正确的方向前进。我会让你不断更新!