以前做文本的处理主要是使用python。
但kaldi中使用perl比较多,所以也有必要了解一些。
先从接触run.pl 开始吧
run.pl 是kaldi中进行本地并行处理的脚本。
使用方法: run.pl log-file command-line arguments...
主要功能是解析参数,将command-line arguments...并行提交。
实现上也比较简单,使用fork,waitpid等函数。
其他在该脚本中首次接触到的,作为留存:
1. @ARGV, 表示perl的参数数组,需要注意的是ARGV[0] 不是程序本身,而是程序的第一个参数。
2. Perl的正则匹配要比Python的方便:匹配:$x=~ m/../ 替换:$x =~ s/.../.../
3.用open函数打开和使用管道:open(MYVAR, "mode");
mode有如下两种模式: "|command" 表示对MYVAR的输出相当于对command的输入. "command|" 表示command的输出作为对MYVAR的输入.
4. scalar 计算数组长度
5. defined 判断变量是否为空,是否赋值