是否可以根据数组的大小动态扩展标量赋值?

smi*_*ule 3 perl

所以,这是交易.我有一个数组,让我们称之为

@array = ('string1','string2','string3','string4');
Run Code Online (Sandbox Code Playgroud)

等等,除了它是一个字符串数组之外,我无法知道数组有多大或内容是什么.

我还有一个变量需要根据数组的大小和内容进行更改.

下面是该变量的简单分配示例,以及生成赋值的数组:

@array = ('string1','string2','string3');

$var = Some::Obj1(Some::Obj2('string1'),
                 Some::Obj2('string2'), 
                 Some::Obj2('string3'));
Run Code Online (Sandbox Code Playgroud)

然后,如果,例如,我有以下@array,

@array = ('string1','string2','string3','string4','string5');
Run Code Online (Sandbox Code Playgroud)

我的任务需要看起来像这样:

$var = Some::Obj1(Some::Obj2('string1'),
                 Some::Obj2('string2'), 
                 Some::Obj2('string3'), 
                 Some::Obj2('string4'), 
                 Some::Obj2('string5'));
Run Code Online (Sandbox Code Playgroud)

你们能想到任何可以实现这样的事情吗?

TLP*_*TLP 10

好吧,如果您只需要将一些字符串转换为对象内的对象列表...为什么不映射?

my @array = ('string1','string2','string3','string4','string5');
my $var = Some::Obj1(map { Some::Obj2($_) } @array);
Run Code Online (Sandbox Code Playgroud)

  • 如果这不起作用,那么您的手动分配也不起作用. (2认同)