在Perl / CGI中创建没有重复的随机数

时间:2014-09-24 11:27:34

标签: perl random cgi

这是我目前的代码:

sub randompass {
srand(time ^ $$);
my @passset = ('a'..'k', 'm'..'n', 'p'..'z', '2'..'9');
my $randpass = "";
for (my $i=0; $i<8; $i++) {
    $randpass .= $passset[int(rand($#passset + 1))];
}
return $randpass;
}

1 个答案:

答案 0 :(得分:4)

请勿使用srand();,并且您将获得rand()的预期行为

来自perldoc -f srand

  

如果没有显式调用srand(),则在第一次使用rand运算符时,它将在没有参数的情况下隐式调用。但是,在某些情况下,程序可能需要调用srand。 一个用于生成可预测的结果,通常用于测试或调试。