Vol*_*Rig 6 arrays perl hash warnings reference
我有严格的警告,但它一直在抱怨下一行的初始化:
$hash{$key} = ($row, [], [], [], '');
它警告这一行:
"Useless use of private variable in void context"
"Useless use of anonymous list ([]) in void context" (3 times)
我将在稍后填充数据,但我希望索引1,2,3是数组引用,索引4是字符串.我正在访问并填充数据,如下所示:
$hash{$key}->[1]->[3] = 'Data';
$hash{$key}->[4] = $hash{$key}->[4] . 'More Data';
显然,我做错了什么,但我不确定如何做对.(另外,我知道最后一行是多余的,这可以用更好的方式总结吗?)
Eri*_*rom 12
哈希的元素只能是标量,因此您必须更改分配以使用匿名数组构造函数而不是parens:
$hash{$key} = [$row, [], [], [], ''];
有关更多信息,请参阅perldsc.
这条线:
$hash{$key}->[4] = $hash{$key}->[4] . 'More Data';
可写:
$hash{$key}->[4] .= 'More Data';
最后,除非你喜欢它们,否则->字符在下标分隔符之间是隐含的,所以$hash{$key}->[1]->[3]意味着同样的事情$hash{$key}[1][3]
| 归档时间: | 
 | 
| 查看次数: | 9022 次 | 
| 最近记录: |