ランダムな文字列を生成するString::Random

普段から良く使うんでメモ。

DBとかにユニークな値を突っ込む時とかにランダム文字列生成とかよくあること。

で、Perlでランダム文字列を生成しようと思ったらString::Randomがオススメ。

色々作り方があるんだけど一番便利なのはrandregexメソッド。

use String::Random;

my $rand_str = String::Random->new->randregex('[A-Za-z0-9]{32}');

こんな感じで正規表現が指定できるので上記のように書くと32桁の英数字でランダムな文字列を生成してくれる。


ちなみにDBに突っ込む目的ならDBIx::Class::RandomStringColumnsってのがString::Randam使用して勝手に突っ込んでくれたりするので便利だったりする。