我是 Perl 的新手,正在尝试一些东西。我注意到的一件事是,如果想要将数组作为哈希映射键的值传递,一种方法是通过引用传递它。如下
$hash_map{key} = \@arr
Run Code Online (Sandbox Code Playgroud)
有没有办法直接按值传递数组?谢谢
哈希将字符串(键)映射到标量值。哈希中的值只能是标量。
数组(根据定义!)不是标量。获取表示该数组的标量值的最佳方法是获取对该数组的引用。这就是你的代码的作用。你应该这样做。
还有其他方法可以创建标量值来表示数组。例如,您可以使用join()数组的元素创建一个字符串。但这将非常脆弱,因为您需要找到一个未出现在任何元素中的分隔符。
最好只是像您已经做的那样参考一下。
更新:为了澄清,有三种方法可以通过参考来做到这一点。
$hash{key} = \@array- 获取对数组的引用并将该引用存储在$hash{key}.$hash{key} = [ @array ]- 将数组展开到列表中,使用该列表作为元素创建一个新数组,并返回对此新数组的引用(有效复制该数组)。@{$hash{key}} = @array- 这也获取数组的副本并存储对该副本的引用。| 归档时间: |
|
| 查看次数: |
1826 次 |
| 最近记录: |