在Perl中访问哈希哈希

时间:2018-08-06 08:43:33

标签: perl hash

我有此代码:

my %options;

$options{"style"}{size} = "mini";
$options{"style"}{color} = "secondary";
diag("size=".$options{style}{size});
$self->applyStyle(%options);

然后:

sub applyStyle {
  my ($self, $options) = @_;
  diag("size=".$options->{style}{size});
}

但是我得到了

Can't use string ("style") as a HASH ref while "strict refs" in use at ...

如何打印(和使用)值?

1 个答案:

答案 0 :(得分:7)

您未正确传递哈希,因为子例程需要哈希引用,而您正在传递的哈希将扩展为键和值列表。这就是为什么它试图将“样式”用作hashref的原因,因为它是传递的第一个键。

只需更改对此的调用,它就可以正常工作。

$self->applyStyle(\%options);