如果我在Perl中有一个哈希表
my %ranges = (
'--tic' => [ 0, 1, 2 ],
'--threads' => [ 8, 16 ],
'--level' => [ 10, 20 ]
);
如何生成所有组合的数组,例如
--level 10 --threads 8 --tic 0
--level 10 --threads 8 --tic 1
--level 10 --threads 8 --tic 2
--level 10 --threads 16 --tic 0
--level 10 --threads 16 --tic 1
--level 10 --threads 16 --tic 2
--level 20 --threads 8 --tic 0
--level 20 --threads 8 --tic 1
--level 20 --threads 8 --tic 2
--level 20 --threads 16 --tic 0
--level 20 --threads 16 --tic 1
--level 20 --threads 16 --tic 2
哈希表中可以有任意数量的哈希项,每个哈希项的值数组中可以有任意数量的元素。输出数组的顺序无关紧要,只需要为每个组合有1个元素,在这种情况下为3*2*2=12,但可以是任何数字。
我认为使用splice、map和foreach的一些组合应该可以解决问题,但我正在摸索中。