#!/usr/bin/perl
######################################################################
# eg/ko/mb_split.pl - mb::splitë¡ ë¬¸ì ê²½ê³ìì ëëê¸°
#
# ë¬´ìì ë³´ì¬ì£¼ë:
#   mb::split('', EXPR)ë ë¬¸ìì´ì ë©í°ë°ì´í¸ ë¬¸ì ë¨ìë¡ ëëê³ ,
#   mb::split(PATTERN, EXPR)ë MBCS êµ¬ë¶ìë¡ ëëë©° ë©í°ë°ì´í¸
#   ë¬¸ì ìì ë°ì´í¸ìë ì ë ì¼ì¹íì§ ìëë¤.
#
# COREìì ì°¨ì´:
#   CORE split(//, "\x82\xA0")ë ë ì¥í("\x82", "\xA0")ë¥¼ ë°ííì¬
#   ë ë°ì´í¸ íë¼ê°ëë¥¼ ì°¢ëë¤. mb::split('', ...)ë í ë¬¸ìë¡
#   ë°ííë¤. mb::splitë í¸ëì¤íì¼ë "split //"ì ë°íì
#   ëìë¬¼ì´ë©° Perl 5.005_03ê¹ì§ í¸íëë¤.
#
# Ì¸ê³ : ìì¤ì \xHH ë°ì´í°ë US-ASCII ê·¸ëë¡ì´ê³ , ì´ íì¼ì
# UTF-8ìëë¤(ì£¼ìë§ íêµ­ì´ë¡ íì§í).
#
#     perl eg/ko/mb_split.pl
#
######################################################################
use strict;
use vars qw($aiu @byte @char $csv @field);

use FindBin;
use lib "$FindBin::Bin/../../lib";
use mb;
mb::set_script_encoding('sjis');

# Shift_JIS íë¼ê°ë 3ê°: a(\x82\xA0) i(\x82\xA2) u(\x82\xA4).
$aiu = "\x82\xA0\x82\xA2\x82\xA4";

# CORE split(//, ...)ë ë°ì´í¸ë¥¼ ë³¸ë¤: ì¬ê¸°ìë 6ê°.
@byte = split(//, $aiu);
print "CORE split(//)   : ", scalar(@byte), " pieces (bytes)\n";   # 6

# mb::split('', ...)ë ë¬¸ìë¥¼ ë³¸ë¤: 3ê°.
@char = mb::split('', $aiu);
print "mb::split('')    : ", scalar(@char), " pieces (chars)\n";   # 3

# MBCS êµ¬ë¶ìë¡ ëëê¸°. êµ¬ë¶ìë íë¼ê°ë a
# (\x82\xA0)ì´ë¤; mb::splitë ê·¸ê²ì í ë¬¸ìë¡ ì¼ì¹ìí¤ë©° \x82ë
# \xA0 ë°ì´í¸ê° ì´ëì ëíëë  ê±°ê¸°ì ë§ì¶ì§ ìëë¤.
#     A a B a C  ->  íë: A, B, C
$csv   = "A\x82\xA0B\x82\xA0C";
@field = mb::split("\x82\xA0", $csv);
print "fields on MBCS   : ", scalar(@field), " (", join(',', @field), ")\n"; # 3 (A,B,C)

# mb::splitì ë¦¬ì¤í¸ ë¬¸ë§¥ì¼ë¡ ë¬¸ì ì ì¸ê¸°(chars() ëì°ë¯i° ê°ì).
{
    local($^W) = undef;
    print "character count  : ", scalar(mb::split('', $aiu)), "\n";   # 3
}

exit 0;
