SSブログ

Perlで英数字のランダム文字列を生成する方法 [Perl]

Perl で英数字のランダム文字列を生成する方法はいくつかありますが、
いちばん分かりやすい方法は、あらかじめ配列に a~z、A~Z、0~9を入れておき、
配列の要素をランダムに指定して文字を追加していく方法でしょう。

この手法ならば、あらかじめ配列に英数字以外の記号等を入れておけば、
記号等も生成文字列の対象とすることが容易にできます。

以下は、サンプルのソースコードです。

sub randstr {
    my $length = $_[0];

    my @char_tmp=();

    # 配列にランダム生成する対象の文字列を格納
    # (以下は、小文字のa~z、大文字のA~Z、数字の0~9)
    push @char_tmp, ('a'..'z');
    push @char_tmp, ('A'..'Z');
    push @char_tmp, (0..9);

    # 指定文字数分、ランダム文字列を生成する
    my $rand_str_tmp = '';
    my $i;
    for ($i=1; $i<=$length; $i++) {
    	$rand_str_tmp .= $char_tmp[int(rand($#char_tmp+1))];
    }

    return $rand_str_tmp;
}


このサブルーチンを以下のようにして呼び出すことで、
変数 $rand_str にランダムな文字列が格納されます。
引数の数値は、生成する文字列の長さです。

$rand_str = &randstr(4);



CGI & Perl ポケットリファレンス (Pocket reference)
藤田 郁 三島 俊司
技術評論社
売り上げランキング: 219179



nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。