======================================================================
 mb Cheat Sheet                                         [KM] ភាសាខ្មែរ
======================================================================

[ 1. ផ្ទុកម៉ូឌុល ]
  use mb;
  mb::set_script_encoding('utf8');

[ 2. ប្រវែង / substr តាមតួអក្សរ ]
  mb::length($str)              # ចំនួនតួអក្សរ (មិនមែន bytes)
  mb::substr($str, $pos, $len)  # substring តាមទីតាំងតួអក្សរ

[ 3. ស្វែងរកខ្សែអក្សរ ]
  mb::index($str, $sub)         # លិបិក្រមទីតាំងតួអក្សរ
  mb::rindex($str, $sub)        # ស្វែងរកពីខាងស្ដាំ
  mb::index_byte($str, $sub)    # លិបិក្រមទីតាំង byte

[ 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);

[ 9. កន្សោមនិយ័តកម្ម code point ពេលដំណើរការ (mb::qr) ]
  use mb qw(*mb utf8);
  $str =~ mb::qr(qr/./)         # "." ផ្គូផ្គងនឹង code point មួយ
  $str =~ m{\G$mb{qr/(.)/}gc}   # ស្មើនឹងទម្រង់ tie

[ 10. ផ្ទៀងផ្ទាត់ bytes ត្រឹមត្រូវ (mb::valid) ]
  mb::valid($octets)            # ត្រឹមត្រូវ 1 បើមិនត្រឹមត្រូវ 0
                                # តឹងរ៉ឹង ស្រេចចិត្ត អាស្រ័យលើ encoding

[ 11. បំបែកតាម code point (mb::split) ]
  @f = mb::split(qr/,/, $csv)   # បំបែកនៅព្រំដែន code point

[ 12. មធ្យោបាយបីដើម្បីដំណើរការ (filter / modulino / runtime) ]
  use mb;                       # ផ្លូវ 1: source filter (perl 5.8+)
  perl mb.pm script.pl          # ផ្លូវ 2: modulino
  use mb qw(*mb utf8);          # ផ្លូវ 3: runtime interface
