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;
}
--------------------------------------------------------------------------------------------------
こんなんで十分実用に耐えうると思う。
--------------------------------------------------------------------------------------------------
(中略)
###### 第一引数に文字数、第二引数に文字種を指定
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;
}
--------------------------------------------------------------------------------------------------
こんなんで十分実用に耐えうると思う。

コメントする