我有此代码:
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 ...
如何打印(和使用)值?
答案 0 :(得分:7)
您未正确传递哈希,因为子例程需要哈希引用,而您正在传递的哈希将扩展为键和值列表。这就是为什么它试图将“样式”用作hashref的原因,因为它是传递的第一个键。
只需更改对此的调用,它就可以正常工作。
$self->applyStyle(\%options);