【发布时间】:2015-01-29 06:25:13
【问题描述】:
我有一个名为 News 的模块(原名,我知道),它有一个名为 get_fields 的方法,这个方法像这样返回属于该模块的所有字段
sub get_fields {
my $self = shift;
return $self;
}
现在,当我在另一个模块中这样调用它时,我需要对字段进行处理
my %fields = %{ $news->get_fields };
我发现这样做可以避免这个问题
引用键的参数类型必须是 unblessed hashref 或 数组引用
当我像这样迭代其他字段时
foreach my $key ( keys %fields ) {
%pairs->{$key} = %fields->{$key} if %fields->{$key};
}
为了使用字段的值,我收到此警告
不推荐使用哈希作为参考
它指向foreach循环。
如何在不返回 unbless 警告的情况下避免此错误消息?
【问题讨论】:
-
经验法则:印记(变量的
$%@部分)对应于您正在使用的变量的哪一部分。这是$foo{key}和$bar[23],因为您访问的是单个值,即使变量是%foo和@bar。不是最好的设计,但至少有一个规则。
标签: perl