======================================================================
 mb Cheat Sheet                                            [KO] 한국어
======================================================================

[ 1. 모듈 로드 ]
  use mb;
  mb::set_script_encoding('utf8'); # utf8 / sjis / eucjp / big5 / gbk / uhc

[ 2. 문자 단위 length / substr ]
  mb::length($str)              # 문자 수 (바이트 수 아님)
  mb::substr($str, $pos, $len)  # 문자 위치로 부분 문자열 추출
  mb::substr($str, $pos, $len, $replacement)

[ 3. 문자열 검색 ]
  mb::index($str, $sub)         # 문자 위치 인덱스
  mb::index($str, $sub, $pos)   # $pos 부터 검색
  mb::rindex($str, $sub)        # 오른쪽부터 검색
  mb::index_byte($str, $sub)    # 바이트 위치 인덱스 (JPerl 호환)
  mb::rindex_byte($str, $sub)

[ 4. 대소문자 변환 ]
  mb::uc($str)  mb::lc($str)  mb::ucfirst($str)  mb::lcfirst($str)

[ 5. 문자 코드 ]
  mb::ord($str)  mb::chr($n)

[ 6. 기타 문자열 연산 ]
  mb::chop($str)   mb::reverse(@list)
  mb::getc(FH)     mb::tr($str,$from,$to)

[ 7. 지원 인코딩 ]
  utf8  sjis  eucjp  big5  big5hkscs  gbk  uhc  gb18030  rfc2279  wtf8

[ 8. 예제 ]
  use mb;
  mb::set_script_encoding('utf8');
  my $s = "안녕하세요";
  printf "문자수=%d\n",   mb::length($s);
  printf "부분=%s\n",     mb::substr($s,0,3);
  printf "위치=%d\n",     mb::index($s,"하세요");

[ 9. 런타임 코드포인트 정규식 (mb::qr) ]
  use mb qw(*mb utf8);
  $str =~ mb::qr(qr/./)         # "."가 한 코드포인트와 일치
  $str =~ m{\G$mb{qr/(.)/}gc}   # tie 형식과 동등

[ 10. 올바른 바이트 검증 (mb::valid) ]
  mb::valid($octets)            # 올바르면 1, 아니면 0
                                # 엄격, 선택적; 인코딩에 따라 다름

[ 11. 코드포인트 단위 분할 (mb::split) ]
  @f = mb::split(qr/,/, $csv)   # 코드포인트 경계로 분할

[ 12. 실행하는 세 가지 방법 (filter / modulino / runtime) ]
  use mb;                       # 경로1: 소스 필터 (perl 5.8+)
  perl mb.pm script.pl          # 경로2: modulino
  use mb qw(*mb utf8);          # 경로3: 런타임 인터페이스
