ランダムな数値を生成する
rand
は 0 以上 EXPR より小さい範囲のランダムな数値を生成します。
EXPR は 0 より大きい数値でなければいけません。
EXPR が 0 または EXPR が省略されたら 1 が適用されます。
print rand 10; # 4.09123772130446 (呼び出すたびに異なる値になる)
rand
は、もし事前に srand
が呼び出されなかったら、
自動的に srand
を事前に実行します。
rand
は int
と組み合わせて、
特定の範囲の中からランダムな整数を抽出するために良く使われます。
次のコードは 0 ~ 9 の範囲からランダムな整数を取り出します。
print int(rand 10); # 0 ~ 9 の範囲からランダムな整数を取り出す
抽出されるランダム整数には rand
に引き渡した整数は含まれない点に注意してください。
もし 0 ~ 10 の範囲でランダムな整数を取り出したい場合は int(rand 11)
とします。
なお、rand
は暗号という観点からは安全ではありません。
セキュリティ的に信頼できる乱数を生成したいなら rand
を使わないでください。
そのような目的であれば、Data::Entropy,
Crypt::Random,
Math::Random::Secure,
Math::TrulyRandom
などが役に立つでしょう。