我试图用:
更新子返回的哈希值sub foo {
my ($self, $arg) = @_;
my $results = $self->SUPER::foo($arg);
$results->{uri} .= 'hey'; # I want to append 'hey' to the value of the already defined 'uri'
return $results;
}
但我得到了:
Can't use string ("hey") as a HASH ref while "strict refs"
我知道这是一个常见的错误,但我无法理解为什么会发生这种错误。
答案 0 :(得分:0)
如果调用$results
之后$self->SUPER::foo($arg);
的内容是字符串文字'hey'
而不是HASHREF,那么您将从Perl获取此内容 - 就像您要执行此操作一样以下内容:
my $results = 'hey'
$results->{uri} .= 'hey';