循环Perl数组

13a*_*aal 2 perl

我对Perl非常新,所以我很抱歉,如果这是一个非常简单的问题,我正在创建一个带有数组并随机返回的小程序,问题是我不确定我是否理解如何返回一个随机排序的数组在Perl.我希望这个数组随机返回50次:

 x @array = ("O", "I", "S", "Z", "L", "J", "T")
 print x @array = rand(@array);
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我已经尝试过rand函数,但它在输出中给出了这个错误:

数组找到运算符在random.pl lone 1处的预期位置,在random.pl第1行的行结束语法错误,在"x @ array"附近执行random.pl由于编译错误而中止.

正如你所看到的,如果有人可以帮助我的话我就是Perl的新手,我将不胜感激

too*_*lic 5

您可以使用List :: Util中shuffle函数随机对数组元素进行排序:

use warnings;
use strict;
use List::Util qw(shuffle);

my @array = ("O", "I", "S", "Z", "L", "J", "T");
for (1..5) {
    print join ' ', shuffle(@array), "\n";
}

__END__

T J Z O S I L 
L Z I O S J T 
I O J Z T S L 
J O I Z L S T 
O I Z T S J L 
Run Code Online (Sandbox Code Playgroud)

  • 正如我所说我是Perl的新手,我认为它会创建一个名为x的数组. (2认同)
  • @LostBam:啊,我明白了.它是`@`意思是"数组",所以`@ array`指的是一个叫做"array"的数组,所以它不是一个非常有用的名字!像`@letters =("O","I","S","Z","L","J","T")`就好了,创建一个名为"字母"的数组并放入那些价值观.顺便说一句,如果它们是针对特定的人,请在评论开始时加上@ @ Borodin(或其他).这样我就会收到一条等待我阅读的通知. (2认同)