そのうち使うかな? と思って、文字列を全文検索でよく使われる N-Gram(Nグラム)変換する関数を書いてみました。 例えば、「今日もお仕事」 という文字列を、「今日 日も もお お仕 仕事」 とか 「今日も 日もお もお仕 お仕事」 というように変換しようというわけです。 なお、ソースコードは、文字コードが UTF-8 で保存されている事を前提にしています。 sub ConvertNGram { use Encode; my $str = shift; my $n = shift; my $wsp = decode('utf8', ' '); # 分割する文字数をチェック $n=2 if (!$n || $n !~ /^[0-9]+$/); # 不要な文字を削除 $str =~ s/\n|\t| |$wsp//g; # 文字数チェック my $slen = length($str); r