我有这个代码:
my %options;
$options{"style"}{size} = "mini";
$options{"style"}{color} = "secondary";
diag("size=".$options{style}{size});
$self->applyStyle(%options);
Run Code Online (Sandbox Code Playgroud)
然后:
sub applyStyle {
my ($self, $options) = @_;
diag("size=".$options->{style}{size});
}
Run Code Online (Sandbox Code Playgroud)
但我得到:
Can't use string ("style") as a HASH ref while "strict refs" in use at ...
如何打印(和使用)值?
您没有正确传递哈希,因为子例程期望哈希引用,并且您传入的哈希将扩展为键和值列表.这就是为什么它试图使用"style"作为hashref,因为它是它传递的第一个键.
只需更改对此的调用即可.
$self->applyStyle(\%options);
Run Code Online (Sandbox Code Playgroud)