日本語文字列を切り詰めるPerlの関数
日本語文字列を切り詰めるPerlの関数。EUC-JP限定
Perlメモの文字が途切れているか判定するを参考にしました。
sub jtruncate{
my($str,$n)=@_;
$n ||=200;
return $str if(length($str) <= $n);
my $substr = substr($str,0,$n-3);
if($substr =~ /\x8F$/ or $substr =~ tr/\x8E?xA1-\xFE// % 2){
chop $substr;
}
$substr .= "...";
return $substr;
}
$short = &jtruncate($long,$length)
CPANにはLingua::JA::Jtruncateというモジュールがありますが、これは、jcode.plを利用して文字コードも判定してくれるみたいです。