如何从数组中的每个元素创建对象?

use*_*478 2 arrays perl module reference

我有一个带有新构造函数的模块:

package myClass;

sub new
{
    my $class = shift;
    my $arrayreference = shift;
    bless $arrayreference, $class;
    return $arrayreference;
};
Run Code Online (Sandbox Code Playgroud)

我想做的事情如下:

foreach $ref (@arrayref)
{
     $array1 = myClass->new($ref);
}
Run Code Online (Sandbox Code Playgroud)

$array1每当被改写,但我想要的阵列中的每个元件具有不同的对象名称(如$array1,$array2,$array3等等)

Eri*_*rom 5

如果您正在使用复数数据结构(数组),则需要将结果存储到多个容器(或多个标量容器)中.执行此操作的惯用方法是使用以下map函数:

my @object_array = map {myClass->new($_)} @source_array;
Run Code Online (Sandbox Code Playgroud)

如果您知道@source_array包含固定数量的项目,并且您希望每个对象都有标量:

my ($foo, $bar, $baz) = map {myClass->new($_)} @source_with_3_items;
Run Code Online (Sandbox Code Playgroud)