从perl中的数组中选择一个数组

时间:2014-12-17 02:32:46

标签: perl

我想在Perl中执行以下操作:

my @triples=([3,4,5],[5,12,13],[8,5,17],[7,24,25]};

然后我想随机选择四个三元组中的一个,然后将选择的元素分配给变量x,y和r。

例如,如果随机选择[3,4,5],则指定x = 3,y = 4,r = 5.

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

0到4之间的整数(4独占):

int(rand 4).

将此用作数组索引:

$triplets[int(rand 4)]

现在取消引用并分配给您的变量:

my ($x, $y, $r) = @{$triplets[int(rand 4)]}

正如@Jim Davids指出的那样,你可以删除int并获得更通用的方法,你可以在标量上下文中使用@triplets来获得数组的长度。

my ($x, $y, $r) =  @{$triplets[rand @triplets]}