数组 – Perl:如何在新哈希中声明空数组引用?

前端之家收集整理的这篇文章主要介绍了数组 – Perl:如何在新哈希中声明空数组引用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有严格的警告,但它一直在抱怨下一行的初始化:
$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';

显然,我做错了什么,但我不确定如何做对. (另外,我知道最后一行是多余的,这可以用更好的方式总结吗?)

解决方法

哈希的元素只能是标量,因此您必须更改分配以使用匿名数组构造函数而不是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]的含义相同

原文链接:https://www.f2er.com/Perl/171695.html

猜你在找的Perl相关文章