« ln シンボリックリンクを作成する (Linux/UNIX) | メイン | 数字を三桁ずつカンマで区切る (Perl, commify) »

カテゴリー:文字列 

指定バイト数で自動的に改行する (Perl. Jcode.pm, jfold)

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

このような場合には、Jocode.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);
}

○実行結果


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


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

Jcode.pm - jcode.pl の後継、Encode.pm への架け橋
http://openlab.jp/Jcode/index-j.html


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


トラックバック

このエントリーのトラックバックURL:
http://katsubemakito.net/mt/mt-tb.cgi/325

コメントを投稿

クリエイティブ・コモンズ・ライセンス
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.