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
是空的)。
我试过两种相似的语法。第一个有效:
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
是空的)。