【问题标题】:Perl -- unable to construct array of objectsPerl - 无法构造对象数组
【发布时间】:2016-10-18 10:34:48
【问题描述】:

我尝试了两种类似的语法。第一个有效:

   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 在代码末尾仍然是空的。)

【问题讨论】:

  • 从这里看起来不错。你确定@values 不是空列表吗?

标签: arrays perl ref


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 2014-11-19
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    相关资源
    最近更新 更多