Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl中的链式引用_Perl - Fatal编程技术网

Perl中的链式引用

Perl中的链式引用,perl,Perl,如何理解以下两行Perl代码: %{$self->{in1}->{sv1}} = %{$cs->{out}->{grade}}; 及 这两种方法都涉及以链式方式使用哈希和哈希引用,但第一种方法使用%,第二种方法是使用@的数组对象。由此产生的差异是什么,对此我不是很清楚。您回答了自己的问题。第一行将散列复制到散列,第二行将数组复制到数组!!换句话说,$self->{in1}->{sv1}是对哈希的引用,$self->{in1}->{sv1value}是对数组的引用。在第一

如何理解以下两行Perl代码:

%{$self->{in1}->{sv1}} = %{$cs->{out}->{grade}};


这两种方法都涉及以链式方式使用哈希和哈希引用,但第一种方法使用%,第二种方法是使用@的数组对象。由此产生的差异是什么,对此我不是很清楚。

您回答了自己的问题。第一行将散列复制到散列,第二行将数组复制到数组!!换句话说,
$self->{in1}->{sv1}
是对哈希的引用,
$self->{in1}->{sv1value}
是对数组的引用。

在第一个
$self->{in1}->{sv1}
$cs->{out}->{grade}
中都是对哈希的引用。所以这句话:

%{$self->{in1}->{sv1}} = %{$cs->{out}->{grade}};
正在用
$cs->{out}->{grade}
引用的哈希的内容替换已被
$self->{in1}->{sv1}
引用的内容

注意:这与以下情况非常不同:

$self->{in1}->{sv1} = $cs->{out}->{grade}
这只会使它们引用相同的散列


第二行是做同样的事情,除了它是引用的数组,而不是哈希。

请考虑更新问题标题。
$self->{in1}->{sv1} = $cs->{out}->{grade}