在子例程中传递哈希

时间:2015-06-19 05:55:17

标签: perl hash subroutine

我已经制作了一个简单的perl脚本,用于通过子程序

打印哈希键/值对
#!/usr/local/bin/perl

#passing hash to a subroutine

sub printhash{

           my (%hash) = @_;

           foreach my $key (keys %hash){

                    my $value = $hash{$key};

                    print "$key : $value\n ";

          }

}

%hash = {'name' => 'devendra', 'age' => 21};

printhash(%hash);

预期输出:

name:devendra

年龄:21

输出继电器:

HASH(0x1be0e78):

它出了什么问题?

1 个答案:

答案 0 :(得分:5)

这一行

%hash = {'name' => 'devendra', 'age' => 21};

正在尝试为哈希分配匿名哈希引用。你真正的意思是

%hash = ('name' => 'devendra', 'age' => 21);

如果您有use strictuse warnings,您会看到消息

  

参考文献找到了偶数大小的预期列表

让你知道这个问题。一直使用它们!