perl将中文字符转换成全拼音

发布时间:2020-06-09编辑:脚本学堂
为大家介绍perl的一个好玩的模块,它可以使中文转换为全拼音的,而且还能加入拼音的音节呢。

为大家介绍perl的一个好玩的模块,它可以使中文转换为全拼音的,而且还能加入拼音的音节呢。
cpan上的东西,如果你愿意尝试,那真是个宝贝多多的神圣之地,哈。。。

需要安装的模块:
Lingua::Han::PinYin

例子:
 

复制代码 代码如下:

#!/usr/bin/perl
use Lingua::Han::PinYin;

my $h2p = new Lingua::Han::PinYin();
print $h2p->han2pinyin("我"); # wo
my @result = $h2p->han2pinyin("爱你"); # @result = ('ai', 'ni');

# 可以得到拼音的声调,比如下面的 "我" 是3声,则有下列的显示
my $h2p = new Lingua::Han::PinYin(tone => 1);
print $h2p->han2pinyin("我"); #wo3
my @result = $h2p->han2pinyin("爱你"); # @result = ('ai4', 'ni3');
print $h2p->han2pinyin("林道"); #lin2dao4
print $h2p->han2pinyin("I love 余瑞华 a"); #i love yuruihua a

以上示例就是直接照抄的原方法。

下面来看我自己写的一个例子吧。
将文件里面的歌曲和歌手的2个字段的第一个字母输出来:
 

复制代码 代码如下:

#!/usr/bin/perl
use Lingua::Han::PinYin;

open OUT,'你想要处理的文件' or die "$!";

while ($file=<OUT>){
chomp $file;
my @data=split(/t/,$file);

$data1=$data[0];   #把每行的数据的第一列和第二列做拼音转换处理(歌曲和歌手)
$data2=$data[1];
  my $h2p = new Lingua::Han::PinYin();
 my $sum1=$h2p->han2pinyin("$data1");
 my $sum2=$h2p->han2pinyin("$data2");

 my $start_char1=substr($sum1,0,1);   #取出全拼的第一个拼音字幕
 my $start_char2=substr($sum2,0,1);
 print '这是歌曲的第一个字符'."$start_char1n";

 print '这是歌手的第一个字符'."$start_char2n";
}
close OUT;