Perl -- 无法构造对象数组

Perl -- unable to construct array of objects

我试过两种相似的语法。第一个有效:

   my $obj = PI::something::ObjectManipulator->new();
   $obj->setValue('HELLO');
   my $objList = [$object];

然而,这不是:

  my $objList= [];
  foreach my $value (@values) {
    my $obj = PI::something::ObjectManipulator->new();
    $obj->setValue($value);
    push @$objList, $obj;
  };

这两种做事方式有什么区别?为什么第二个不起作用? (通过不起作用,似乎 $objList 在代码末尾仍然是空的。)

假设 my $objList = [$object];my $objList = [$obj]; 的拼写错误,假设 my @values = 'HELLO'; 没有差异。

假设当您说“$objList 仍然是空的”时您的意思是“@$objList 仍然是空的”,只有在没有进入循环时才会发生这种情况(即 @values是空的)。