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

この記事は2006年10月05日に書かれたものです。

日本語を含む文字列がある。 この文字列が改行されておらず非常に長文であるため、指定したバイト数で自動的に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モジュールを自動的に使用するよう仕様が変更になっています。

関連書籍

failed to fetch data: unkown error

Damian Conway
ISBN 4873113008
¥ 4,644

コメント

コメントを入力. Wiki文法が有効です:
D W N F E