File Coverage

blib/lib/Bopomofo.pm
Criterion Covered Total %
statement 9 13 69.2
branch 0 2 0.0
condition n/a
subroutine 3 4 75.0
pod 1 1 100.0
total 13 20 65.0


line stmt bran cond sub pod time code
1             package Bopomofo;
2              
3 1     1   31324 use strict;
  1         2  
  1         31  
4 1     1   961 use utf8;
  1         9  
  1         6  
5 1     1   29 use warnings;
  1         5  
  1         1301  
6              
7             require Exporter;
8              
9             our @ISA = qw(Exporter);
10              
11             #Copyright (c) 2004 Jason Toy (朱仲光)
12             #This module is under the BSD license
13              
14              
15             # Items to export into callers namespace by default. Note: do not export
16             # names by default without a very good reason. Use EXPORT_OK instead.
17             # Do not simply export all your public functions/methods/constants.
18              
19             # This allows declaration use Bopomofo ':all';
20             # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
21             # will save memory.
22             our %EXPORT_TAGS = ( 'all' => [ qw(
23            
24             ) ] );
25              
26             our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
27              
28             our @EXPORT = qw(
29            
30             );
31              
32             our $VERSION = '0.21';
33              
34              
35             # Preloaded methods go here.
36              
37             our %Map;
38              
39             sub bopo_to_pin {
40 0     0 1   my ($text) = @_;
41 0 0         $text =~ s/(\S)/ defined $Map{$1} ? $Map{$1} : $1; /eg;
  0            
42 0           return $text;
43             }
44              
45             %Map =
46             ('ㄚ' => 'a', 'ㄞ' => 'ai', 'ㄢ' => 'an',
47             'ㄤ' => 'ang', 'ㄠ' => 'ao', 'ㄅㄚ' => 'ba',
48             'ㄅㄞ' => 'bai', 'ㄅㄢ' => 'ban', 'ㄅㄤ' => 'bang',
49             'ㄅㄠ' => 'bao', 'ㄅㄟ' => 'bei', 'ㄅㄣ' => 'ben',
50             'ㄅㄥ' => 'beng', 'ㄅㄧ' => 'bi', 'ㄅㄧㄢ' => 'bian',
51             'ㄅㄧㄠ' => 'biao', 'ㄅㄧㄝ' => 'bie', 'ㄅㄧㄣ' => 'bin',
52             'ㄅㄧㄥ' => 'bing', 'ㄅㄛ' => 'bo', 'ㄅㄨ' => 'bu',
53             'ㄘㄚ' => 'ca', 'ㄘㄞ' => 'cai', 'ㄘㄢ' => 'can',
54             'ㄘㄤ' => 'cang', 'ㄘㄠ' => 'cao', 'ㄘㄜ' => 'ce',
55             'ㄘㄣ' => 'cen', 'ㄘㄥ' => 'ceng', 'ㄔㄚ' => 'cha',
56             'ㄔㄞ' => 'chai', 'ㄔㄢ' => 'chan', 'ㄔㄤ' => 'chang',
57             'ㄔㄠ' => 'chao', 'ㄔㄜ' => 'che', 'ㄔㄣ' => 'chen',
58             'ㄔㄥ' => 'cheng', 'ㄔ' => 'chi', 'ㄔㄨㄥ' => 'chong',
59             'ㄔㄡ' => 'chou', 'ㄔㄨ' => 'chu', 'ㄔㄨㄞ' => 'chuai',
60             'ㄔㄨㄢ' => 'chuan', 'ㄔㄨㄤ' => 'chuang', 'ㄔㄨㄟ' => 'chui',
61             'ㄔㄨㄣ' => 'chun', 'ㄔㄨㄛ' => 'chuo', 'ㄘ' => 'ci',
62             'ㄘㄨㄥ' => 'cong', 'ㄘㄨ' => 'cu', 'ㄘㄨㄢ' => 'cuan',
63             'ㄘㄨㄟ' => 'cui', 'ㄘㄨㄣ' => 'cun', 'ㄘㄨㄛ' => 'cuo',
64             'ㄉㄚ' => 'da', 'ㄉㄞ' => 'dai', 'ㄉㄢ' => 'dan',
65             'ㄉㄤ' => 'dang', 'ㄉㄠ' => 'dao', 'ㄉㄜ' => 'de',
66             'ㄉㄟ' => 'dei', 'ㄉㄥ' => 'deng', 'ㄉㄧ' => 'di',
67             'ㄉㄧㄢ' => 'dian', 'ㄉㄧㄠ' => 'diao', 'ㄉㄧㄝ' => 'die',
68             'ㄉㄧㄥ' => 'ding', 'ㄉㄧㄡ' => 'diu', 'ㄉㄨㄥ' => 'dong',
69             'ㄉㄡ' => 'dou', 'ㄉㄨ' => 'du', 'ㄉㄨㄢ' => 'duan',
70             'ㄉㄨㄟ' => 'dui', 'ㄉㄨㄣ' => 'dun', 'ㄉㄨㄛ' => 'duo',
71             'ㄝ' => 'e', 'ㄜ' => 'e', 'ㄟ' => 'ei',
72             'ㄣ' => 'en', 'ㄥ' => 'eng', 'ㄦ' => 'er',
73             'ㄈㄚ' => 'fa', 'ㄈㄢ' => 'fan', 'ㄈㄤ' => 'fang',
74             'ㄈㄟ' => 'fei', 'ㄈㄣ' => 'fen', 'ㄈㄥ' => 'feng',
75             'ㄈㄛ' => 'fo', 'ㄈㄡ' => 'fou', 'ㄈㄨ' => 'fu',
76             'ㄍㄚ' => 'ga', 'ㄍㄞ' => 'gai', 'ㄍㄢ' => 'gan',
77             'ㄍㄤ' => 'gang', 'ㄍㄠ' => 'gao', 'ㄍㄜ' => 'ge',
78             'ㄍㄟ' => 'gei', 'ㄍㄣ' => 'gen', 'ㄍㄥ' => 'geng',
79             'ㄍㄨㄥ' => 'gong', 'ㄍㄡ' => 'gou', 'ㄍㄨ' => 'gu',
80             'ㄍㄨㄚ' => 'gua', 'ㄍㄨㄞ' => 'guai', 'ㄍㄨㄢ' => 'guan',
81             'ㄍㄨㄤ' => 'guang', 'ㄍㄨㄟ' => 'gui', 'ㄍㄨㄣ' => 'gun',
82             'ㄍㄨㄛ' => 'guo', 'ㄏㄚ' => 'ha', 'ㄏㄞ' => 'hai',
83             'ㄏㄢ' => 'han', 'ㄏㄤ' => 'hang', 'ㄏㄠ' => 'hao',
84             'ㄏㄜ' => 'he', 'ㄏㄟ' => 'hei', 'ㄏㄣ' => 'hen',
85             'ㄏㄥ' => 'heng', 'ㄏㄨㄥ' => 'hong', 'ㄏㄡ' => 'hou',
86             'ㄏㄨ' => 'hu', 'ㄏㄨㄚ' => 'hua', 'ㄏㄨㄞ' => 'huai',
87             'ㄏㄨㄢ' => 'huan', 'ㄏㄨㄤ' => 'huang', 'ㄏㄨㄟ' => 'hui',
88             'ㄏㄨㄣ' => 'hun', 'ㄏㄨㄛ' => 'huo', 'ㄐㄧ' => 'ji',
89             'ㄐㄧㄚ' => 'jia', 'ㄐㄧㄢ' => 'jian', 'ㄐㄧㄤ' => 'jiang',
90             'ㄐㄧㄠ' => 'jiao', 'ㄐㄧㄝ' => 'jie', 'ㄐㄧㄣ' => 'jin',
91             'ㄐㄧㄥ' => 'jing', 'ㄐㄩㄥ' => 'jiong', 'ㄐㄧㄡ' => 'jiu',
92             'ㄐㄩ' => 'ju', 'ㄐㄩㄢ' => 'juan', 'ㄐㄩㄝ' => 'jue',
93             'ㄐㄩㄣ' => 'jun', 'ㄎㄚ' => 'ka', 'ㄎㄞ' => 'kai',
94             'ㄎㄢ' => 'kan', 'ㄎㄤ' => 'kang', 'ㄎㄠ' => 'kao',
95             'ㄎㄜ' => 'ke', 'ㄎㄣ' => 'ken', 'ㄎㄥ' => 'keng',
96             'ㄎㄨㄥ' => 'kong', 'ㄎㄡ' => 'kou', 'ㄎㄨ' => 'ku',
97             'ㄎㄨㄚ' => 'kua', 'ㄎㄨㄞ' => 'kuai', 'ㄎㄨㄢ' => 'kuan',
98             'ㄎㄨㄤ' => 'kuang', 'ㄎㄨㄟ' => 'kui', 'ㄎㄨㄣ' => 'kun',
99             'ㄎㄨㄛ' => 'kuo', 'ㄌㄚ' => 'la', 'ㄌㄞ' => 'lai',
100             'ㄌㄢ' => 'lan', 'ㄌㄤ' => 'lang', 'ㄌㄠ' => 'lao',
101             'ㄌㄜ' => 'le', 'ㄌㄟ' => 'lei', 'ㄌㄥ' => 'leng',
102             'ㄌㄧ' => 'li', 'ㄌㄧㄚ' => 'lia', 'ㄌㄧㄢ' => 'lian',
103             'ㄌㄧㄤ' => 'liang', 'ㄌㄧㄠ' => 'liao', 'ㄌㄧㄝ' => 'lie',
104             'ㄌㄧㄣ' => 'lin', 'ㄌㄧㄥ' => 'ling', 'ㄌㄧㄡ' => 'liu',
105             'ㄌㄨㄥ' => 'long', 'ㄌㄡ' => 'lou', 'ㄌㄨ' => 'lu',
106             'ㄌㄨㄢ' => 'luan', 'ㄌㄩㄝ' => 'lue:', 'ㄌㄨㄣ' => 'lun',
107             'ㄌㄨㄛ' => 'luo', 'ㄇㄚ' => 'ma', 'ㄇㄞ' => 'mai',
108             'ㄇㄢ' => 'man', 'ㄇㄤ' => 'mang', 'ㄇㄠ' => 'mao',
109             'ㄇㄟ' => 'mei', 'ㄇㄣ' => 'men', 'ㄇㄥ' => 'meng',
110             'ㄇㄧ' => 'mi', 'ㄇㄧㄢ' => 'mian', 'ㄇㄧㄠ' => 'miao',
111             'ㄇㄧㄝ' => 'mie', 'ㄇㄧㄣ' => 'min', 'ㄇㄧㄥ' => 'ming',
112             'ㄇㄧㄡ' => 'miu', 'ㄇㄛ' => 'mo', 'ㄇㄡ' => 'mou',
113             'ㄇㄨ' => 'mu', 'ㄋㄚ' => 'na', 'ㄋㄞ' => 'nai',
114             'ㄋㄢ' => 'nan', 'ㄋㄤ' => 'nang', 'ㄋㄠ' => 'nao',
115             'ㄋㄟ' => 'nei', 'ㄋㄥ' => 'neng', 'ㄋㄧ' => 'ni',
116             'ㄋㄧㄢ' => 'nian', 'ㄋㄧㄤ' => 'niang', 'ㄋㄧㄠ' => 'niao',
117             'ㄋㄧㄝ' => 'nie', 'ㄋㄧㄣ' => 'nin', 'ㄋㄧㄥ' => 'ning',
118             'ㄋㄧㄡ' => 'niu', 'ㄋㄨㄥ' => 'nong', 'ㄋㄨㄡ' => 'nou',
119             'ㄋㄨ' => 'nu', 'ㄋㄩ' => 'nu:', 'ㄋㄨㄢ' => 'nuan',
120             'ㄋㄩㄝ' => 'nue:', 'ㄋㄨㄛ' => 'nuo', 'ㄡ' => 'ou',
121             'ㄆㄚ' => 'pa', 'ㄆㄞ' => 'pai', 'ㄆㄢ' => 'pan',
122             'ㄆㄤ' => 'pang', 'ㄆㄠ' => 'pao', 'ㄆㄟ' => 'pei',
123             'ㄆㄣ' => 'pen', 'ㄆㄥ' => 'peng', 'ㄆㄧ' => 'pi',
124             'ㄆㄧㄢ' => 'pian', 'ㄆㄧㄠ' => 'piao', 'ㄆㄧㄝ' => 'pie',
125             'ㄆㄧㄣ' => 'pin', 'ㄆㄧㄥ' => 'ping', 'ㄆㄛ' => 'po',
126             'ㄆㄡ' => 'pou', 'ㄆㄨ' => 'pu', 'ㄑㄧ' => 'qi',
127             'ㄑㄧㄚ' => 'qia', 'ㄑㄧㄢ' => 'qian', 'ㄑㄧㄤ' => 'qiang',
128             'ㄑㄧㄠ' => 'qiao', 'ㄑㄧㄝ' => 'qie', 'ㄑㄧㄣ' => 'qin',
129             'ㄑㄧㄥ' => 'qing', 'ㄑㄩㄥ' => 'qiong', 'ㄑㄧㄡ' => 'qiu',
130             'ㄑㄩ' => 'qu', 'ㄑㄩㄢ' => 'quan', 'ㄑㄩㄝ' => 'que',
131             'ㄑㄩㄣ' => 'qun', 'ㄖㄢ' => 'ran', 'ㄖㄤ' => 'rang',
132             'ㄖㄠ' => 'rao', 'ㄖㄜ' => 're', 'ㄖㄣ' => 'ren',
133             'ㄖㄥ' => 'reng', 'ㄖ' => 'ri', 'ㄖㄨㄥ' => 'rong',
134             'ㄖㄡ' => 'rou', 'ㄖㄨ' => 'ru', 'ㄖㄨㄢ' => 'ruan',
135             'ㄖㄨㄟ' => 'rui', 'ㄖㄨㄣ' => 'run', 'ㄖㄨㄛ' => 'ruo',
136             'ㄙㄚ' => 'sa', 'ㄙㄞ' => 'sai', 'ㄙㄢ' => 'san',
137             'ㄙㄤ' => 'sang', 'ㄙㄠ' => 'sao', 'ㄙㄜ' => 'se',
138             'ㄙㄣ' => 'sen', 'ㄙㄥ' => 'seng', 'ㄕㄚ' => 'sha',
139             'ㄕㄞ' => 'shai', 'ㄕㄢ' => 'shan', 'ㄕㄤ' => 'shang',
140             'ㄕㄠ' => 'shao', 'ㄕㄜ' => 'she', 'ㄕㄟ' => 'shei',
141             'ㄕㄣ' => 'shen', 'ㄕㄥ' => 'sheng', 'ㄕ' => 'shi',
142             'ㄕㄡ' => 'shou', 'ㄕㄨ' => 'shu', 'ㄕㄨㄚ' => 'shua',
143             'ㄕㄨㄞ' => 'shuai', 'ㄕㄨㄢ' => 'shuan', 'ㄕㄨㄤ' => 'shuang',
144             'ㄕㄨㄟ' => 'shui', 'ㄕㄨㄣ' => 'shun', 'ㄕㄨㄛ' => 'shuo',
145             'ㄙ' => 'si', 'ㄙㄨㄥ' => 'song', 'ㄙㄡ' => 'sou',
146             'ㄙㄨ' => 'su', 'ㄙㄨㄢ' => 'suan', 'ㄙㄨㄟ' => 'sui',
147             'ㄙㄨㄣ' => 'sun', 'ㄙㄨㄛ' => 'suo', 'ㄉㄚ' => 'ta',
148             'ㄊㄞ' => 'tai', 'ㄊㄢ' => 'tan', 'ㄊㄤ' => 'tang',
149             'ㄊㄠ' => 'tao', 'ㄊㄜ' => 'te', 'ㄊㄥ' => 'teng',
150             'ㄊㄧ' => 'ti', 'ㄊㄧㄢ' => 'tian', 'ㄊㄧㄠ' => 'tiao',
151             'ㄊㄧㄝ' => 'tie', 'ㄊㄧㄥ' => 'ting', 'ㄊㄨㄥ' => 'tong',
152             'ㄊㄡ' => 'tou', 'ㄊㄨ' => 'tu', 'ㄊㄨㄢ' => 'tuan',
153             'ㄊㄨㄟ' => 'tui', 'ㄊㄨㄣ' => 'tun', 'ㄊㄨㄛ' => 'tuo',
154             'ㄨㄚ' => 'wa', 'ㄨㄞ' => 'wai', 'ㄨㄢ' => 'wan',
155             'ㄨㄤ' => 'wang', 'ㄨㄟ' => 'wei', 'ㄨㄣ' => 'wen',
156             'ㄨㄥ' => 'weng', 'ㄨㄛ' => 'wo', 'ㄨ' => 'wu',
157             'ㄒㄧ' => 'xi', 'ㄒㄧㄚ' => 'xia', 'ㄒㄧㄢ' => 'xian',
158             'ㄒㄧㄤ' => 'xiang', 'ㄒㄧㄠ' => 'xiao', 'ㄒㄧㄝ' => 'xie',
159             'ㄒㄧㄣ' => 'xin', 'ㄒㄧㄥ' => 'xing', 'ㄒㄩㄥ' => 'xiong',
160             'ㄒㄧㄡ' => 'xiu', 'ㄒㄩ' => 'xu', 'ㄒㄩㄢ' => 'xuan',
161             'ㄒㄩㄝ' => 'xue', 'ㄒㄩㄣ' => 'xun', 'ㄧㄚ' => 'ya',
162             'ㄧㄢ' => 'yan', 'ㄧㄤ' => 'yang', 'ㄧㄠ' => 'yao',
163             'ㄧㄝ' => 'ye', 'ㄧ' => 'yi', 'ㄧㄣ' => 'yin',
164             'ㄧㄥ' => 'ying', 'ㄩㄥ' => 'yong', 'ㄧㄡ' => 'you',
165             'ㄩ' => 'yu', 'ㄩㄢ' => 'yuan', 'ㄩㄝ' => 'yue',
166             'ㄩㄣ' => 'yun', 'ㄗㄚ' => 'za', 'ㄗㄞ' => 'zai',
167             'ㄗㄢ' => 'zan', 'ㄗㄤ' => 'zang', 'ㄗㄠ' => 'zao',
168             'ㄗㄜ' => 'ze', 'ㄗㄟ' => 'zei', 'ㄗㄣ' => 'zen',
169             'ㄗㄥ' => 'zeng', 'ㄓㄚ' => 'zha', 'ㄓㄞ' => 'zhai',
170             'ㄓㄢ' => 'zhan', 'ㄓㄤ' => 'zhang', 'ㄓㄠ' => 'zhao',
171             'ㄓㄜ' => 'zhe', 'ㄓㄣ' => 'zhen', 'ㄓㄥ' => 'zheng',
172             'ㄓ' => 'zhi', 'ㄓㄨㄥ' => 'zhong', 'ㄓㄡ' => 'zhou',
173             'ㄓㄨ' => 'zhu', 'ㄓㄨㄚ' => 'zhua', 'ㄓㄨㄞ' => 'zhuai',
174             'ㄓㄨㄢ' => 'zhuan', 'ㄓㄨㄤ' => 'zhuang', 'ㄓㄨㄟ' => 'zhui',
175             'ㄓㄨㄣ' => 'zhun', 'ㄓㄨㄛ' => 'zhuo', 'ㄗ' => 'zi',
176             'ㄗㄨㄥ' => 'zong', 'ㄗㄡ' => 'zou', 'ㄗㄨ' => 'zu',
177             'ㄗㄨㄢ' => 'zuan', 'ㄗㄨㄟ' => 'zui', 'ㄗㄨㄣ' => 'zun',
178             'ㄗㄨㄛ' => 'zuo', );
179              
180             1;
181             __END__