我想查询的数组在执行期间不会改变:
my @const_arr=qw( a b c d e f g);
输入是一个包含我想要访问的索引的字符串,例如:
my $str ="1,4";
除$str
之外的某些内容(除@subarray = @const_arr[$str]
中的索引之外)还会导致@subarray
包含[b,e]
?
答案 0 :(得分:5)
如果索引在字符串中,您可以拆分字符串以获取它们:
@array = qw(a b c d e);
$indices = '1,4';
@subarray = @array[split /,/, $indices];
print "@subarray\n";
答案 1 :(得分:4)
数组切片将执行此操作:
@const_arr=qw(a b c d e);
@subarray=(@const_arr)[1,4];
print "@subarray"'
答案 2 :(得分:4)
my @const_arr = qw(a b c d e f); # the {...} creates a hash reference,
# not what you wanted
my $str = "1,4";
my @idx = split /,/ => $str;
my @wanted = @const_arr[@idx];
或一行:
my @wanted = @const_arr[split /,/ => $str];
答案 3 :(得分:3)
@const_arr
应该像这样开始:
my @const_arr = qw(a b c d e f);
然后您可以通过以下方式访问1和4元素:
@const_arr[1,4]