gpt4 book ai didi

arrays - 如何在 perl 中传入数组索引的名称?

转载 作者:行者123 更新时间:2023-12-02 01:17:58 24 4
gpt4 key购买 nike

背景

我试图将这四行代码提取到一个函数中:

my @firstList = split /\s+/, $doubleArray{A_I}{B_I};
@firstList = shuffle(@firstList);
my @secondList = split /\s+/, $doubleArray{A_I}{C_I};
@secondList = shuffle(@secondList);

由于唯一的功能差异是二维数组的第二个索引,因此我想将第二个索引(“B_I”和“C_I”)传递到函数中。

建议的解决方案

换句话说,我想创建一个如下所示的函数:

my funkyFunc($){
my $index = shift;
my @list = split /\s+/, $doubleArray{A_I}{$index};
@list = shuffle(@list);
return @list;
}

我打算这样使用它:

my @firstList = funkyFunc("B_I");
my @secondList = funkyFunc("C_I");

但是,我不确定 perl 将如何解释 "B_I""C_I",或者同样地 B_IC_I。由于这种复杂性,我想知道......

问题

perl中有没有办法传入数组索引的名称?

最佳答案

那些不是数组,那些是哈希(字典,其他语言中的关联数组)。这样,B_IC_I 就会被视为裸字字符串。如果这些是实际的数组,那么它们将被视为裸字函数调用,并且您必须让它们可以在调用者中调用,并且不需要在那里引用。

由于您使用的是哈希值,因此键是字符串,并且您传入 'B_I' 将导致 $indexB_I< 的字符串,并且由于您的 {$index} 包含裸字字符串中不允许的内容($),perl 会将其解释为变量而不是一个文字,一切都会按照你想要的方式工作。

关于arrays - 如何在 perl 中传入数组索引的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59144764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com