指定バイト数で自動的に改行する - Perl

日本語を含む文字列がある。
この文字列が改行されておらず非常に長文であるため、指定したバイト数で自動的にBR要素などを用いて改行を行いたい。

このような場合には、Jcode.pm内のメソッド「jfold」を用いると簡単に実現できる。

サンプル

;#
;# 指定バイト数で自動的に改行する
;#

use Jcode;

print html_jfold('あいうえおかきくけこさしすせそ', 10), "\n";

#----------------------------------------------#
#■指定バイト数で改行する(<br>版)
#----------------------------------------------#
sub html_jfold{
  my $str    = shift;       #指定文字列
  my $byte   = shift;       #指定バイト
  my $j      = new Jcode($str);
  my $result = '';

  foreach my $buff ( $j->jfold($byte) ){
    $result .= "$buff<br>\n";
  }

  return($result);
}

実行結果

あいうえお
かきくけこ
さしすせそ

なお、Jcode.pmの取得方法はコチラのページから。 openlab.jp

日本語の文字コードを変換するだけであれば、Perl5.8から標準でついているEncodeモジュールを使用した方が高速ですが、Jcode.pmが2.0以上であればEncodeモジュールを自動的に使用するよう仕様が変更になっています。