String::Random
単純にランダム文字列が欲しいときがありますね。例えば秘密鍵の文字列を作りたいときなど。
自分で乱数を使って書いてもそれほど大したコードにはならないのですが、String::Randomを使えば非常に楽に書けます。特に正規表現を使った方法は強力だと思います。
use String::Random; my $rand = String::Random->new; my $str = $rand->randregex('[0-9A-F]{16}'); print $str, "\n";
こうすれば16文字の16進文字列が作れます。
他にもrandom_string関数を使った方法があり、
use String::Random qw/random_string/; print random_string("s" x 16);
とすれば、[a-zA-Z0-9]を使った16文字長のランダム文字列が得られます。この"s"の部分が使う文字種を指定しているのですが、これは用意されているもの以外にも自分で新たに定義でき、
use String::Random; my $rand = String::Random->new; $rand->{'h'} = [A..Z, 0..9]; print $rand->randpattern("h" x 16);
とすれば、[A-Z0-9]を使った16文字長のランダム文字列が得られます。