古い記事
ランダムジャンプ
新しい記事
Perl で日本語テキストを簡単に字種かたまりに分割できないかな、
と思い、perlunicode を読みながらサンプルプログラムを書いてみました。
対象テキストは UTF-8。

chunker.pl :
#!/usr/bin/perl
use strict;
use warnings;
use Encode;
use utf8;
use open ':utf8';
binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";

while (<>) {
    chomp;
    my @cs = m/(\p{M}+|\p{N}+|\p{P}|\p{S}+|\p{Z}+|\p{C}+
                |\p{Latin}+
                |\p{Han}+
                |\p{Hiragana}[\p{Hiragana}ー]*
                |\p{Katakana}[\p{Katakana}ー]*
                )/gx;
    print join(",", @cs), "\n";
}

実行例:
% cat a.txt
ルーラでう、う9 10AB.DE「"GH'」★で漢字をカ・ナ食ったー!?MJD39?。
% chunker.pl a.txt
ルーラ,でう,、,う,9, ,10,AB,.,DE,「,",GH,',」,★,で,漢字,を,カ,・,\
ナ,食,ったー,!,?,MJD,39,?,。

とりあえず意図通りに動いています。

追記080207: id:dayflower さんに添削して頂きました。感謝!
http://d.hatena.ne.jp/dayflower/20080207/1202354159
正規表現にマッチしないトークンが取りこぼされていたので
このようにすると良いようです。なるほどー。
my @cs = grep { $_ ne q{} } split m/(正規表現)/xmso, $line;
(正規表現の最後に最後に「|.」を足すだけでも良いかもしれませんね。)
さらに補足で、Unocode文字の属性についての丁寧な解説まで!
これは非常にためになります。
不完全なコードながらも恥ずかしげもなくブログ記事を公開してみた
かいがありました。ありがとうございました。

参考資料:
- perlunicode (Document)
-- コマンドラインで「perldoc perlunicode」を実行すると読める。
-- またはウェブから
  http://www.kt.rim.or.jp/~kbk/perl-5.8/perlunicode.html
この記事に言及しているこのブログ内の記事