日本語文字列を切り詰める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を利用して文字コードも判定してくれるみたいです。