arrays - Perl 中的数组赋值

标签 arrays perl

有什么区别

myArr1 => \@existingarray

myArr2 => [
              @existingarray
          ]

我将 @existingarray 分配给 HashMap 中的元素。

我的意思是内部到底发生了什么。对于第一个数组,它指向同一个数组,对于第二个数组,它使用 @existingarray

中的元素创建一个新数组

提前致谢

最佳答案

是的,第一个获取引用,第二个进行复制,然后获取引用。

[ ... ] 是匿名数组构造函数,将内部列表转换为 arrayref。

因此 @a = 1, 2, 3,

[ @a ]

相同
[ 1, 2, 3 ]

(数组被展平为列表)或

do {
  my @b = @a;
  \@b;
}

实际上,元素被复制。

另外,

my ($ref1, $ref2) = (\@a, [@a]);
print "$ref1 and $ref2 are " . ($ref1 eq $ref2 ? "equal" : "not equal") . "\n";

将确认它们相同。如果我们这样做

$ref1->[0] = 'a';
$ref2->[0] = 'b';

那么 $a[0] 将等于 a b

关于arrays - Perl 中的数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12507687/

相关文章:

php - 显示没有索引键的数组

xml - Perl 格式化 XML 数据

Perl - 散列和列的散列 :(

python - 检查不同 numpy 数组中的相同行

perl - 如何在 Mojo::Redis2 中保存哈希值?

eclipse - 如何使用 Epic 在项目中导入 perl 脚本?

perl - 如何在Perl中获取外部命令的输出?

c# - 如何使用非托管导出 (Robert Giesecke) 将 dateTime 类型数组从 .NET 传递到 Delphi?

arrays - 在Lua中寻址数组中的索引

ruby - 在 Ruby 矩阵中交换列或行