0

我遇到了这段代码(修改后的摘录):

 my $respMap;
 my $respIdArray;
 foreach my $respId (@$someList) {
      push(@$respIdArray, $respId);
 }
 $respMap->{'ids'} = $respIdArray;
 return $respMap;

在这种情况下是否有理由使用自动复活?为什么不简单地做

 my $respMap;
 my @respIdArray;
 foreach my $respId (@$someList) {
      push(@respIdArray, $respId);
 }
 $respMap->{'ids'} = \@respIdArray;
 return $respMap;

跟进:有人能给我一个很好的自动复活用例吗?

4

2 回答 2

1

在处理深层结构时,自动激活更有用。

push( @{$hash{'key'}{$subkey}}, 'value' );
于 2013-05-09T17:23:24.527 回答
1

无论哪种方式都是正确的;第一个使用数组引用$respIdArray,第二个使用普通数组@respIdArray。在构建复杂的数据结构(检查)时,您将需要数组引用perldoc perlreftut,但除此之外,您将选择哪一个取决于您。

请注意,在这两种情况下,您都将数组引用分配给$respMap->{'ids'},因此示例实际上非常相似。

顺便说一句,自动激活是另一回事,它与数据结构的动态创建有关。

于 2013-05-09T17:33:56.500 回答