Perlで簡単にランダムな文字列を生成

| コメント(0) | トラックバック(0)
crypt関数を使ってランダム文字列をつくるモジュールなどもあるが、なにもそこまで・・・と思ったので、どこぞのサイトにあったものをほぼ転用。


--------------------------------------------------------------------------------------------------
(中略)

###### 第一引数に文字数、第二引数に文字種を指定
my $rand_str = &rand_str(8,"a-zA-Z0-9");

###### サブルーチン
sub rand_str{
 my ($str_len,$char_type) = @_;
 my @chars;

 ##### 各文字種の指定あれば配列に追加
 push @chars, ('a'..'z') if $char_type =~ /a-z/;
 push @chars, ('A'..'Z') if $char_type =~ /A-Z/;
 push @chars, (0..9) if $char_type =~ /0-9/;
 my $total = @chars;

 my $rand_str = "";
 ##### randとintを用いて生成
 $rand_str .= $chars[int(rand($total))] for (1..$str_len);

 return $rand_str;
}
--------------------------------------------------------------------------------------------------


こんなんで十分実用に耐えうると思う。

トラックバック(0)

トラックバックURL: http://www.igreks.jp/blog/mt-tb.cgi/373

コメントする