《每日一题》第81题Perl脚本处理:利用perl对文本进行处理

Posted 芯司机

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《每日一题》第81题Perl脚本处理:利用perl对文本进行处理相关的知识,希望对你有一定的参考价值。

《每日一题》第81题Perl脚本处理:利用perl对文本进行处理

精彩导读

Perl和Tcl是ic设计中最常用的两种脚本语言,在这里先总结一下Perl的作用: 


用于生成Verilog代码

在写verilog时,经常遇到一些规律性强,编写又比较麻烦的代码,而这些恰恰又是可重用性比较强的。比如总线模块、FIR滤波器、IIR滤波器,只要滤波器阶数和参数定了编码都大致相似的模块,就比较适合用来自动生成实现他们功能的verilog代码。Perl的强项在于文本处理,对于verilog代码的生成,perl的代码会比较简洁易写。


用于扩充Verilog的语法

有一些verilog没有的语法功能,可以使用perl来扩充。比如工程中某变量的bit数有变化,导致了门级描述中门的个数变化,就可以用perl来生成相应的verilog代码。


用于验证中的数据处理

验证中有些数据格式需要处理,还有些数据需要分析。比如用matlab生成的数据改写成verilog能识别的ROM格式,或是直接生成ROM的verilog。还有Verilog验证后生成的数据格式变成下一级做数据分析软件能识别的格式。Perl还能直接对verilog验证所得数据进行数据比对和分析。


后端工具与前后级连接的格式处理

如果说Tcl比较常用在后端的软件使用中,那么perl就大多数用在软件和软件之间粘合上。有一些前级的工具所得结果不能直接用于下级工具的输入,那他们之间的转换用perl是完全合适的。


如上所述,基本上都用在文本格式的转换上。其实,perl的功能和C/C++是一样的,只是运行的方式不同,C等是编译之后生成exe文件,而perl是需要perl的运行环境支撑,有点像运行语句编译一句的感觉,这就与matlab的原理有点相似。可perl与C相比更加灵活,在文本操作上的编码相当简便。


脚本语言也是IC工程师必须要掌握的技能。

手稿解读


《每日一题》第81题Perl脚本处理:利用perl对文本进行处理

《每日一题》第81题Perl脚本处理:利用perl对文本进行处理

问:

perl或者shell脚本对当前目录中所有符合下面名字的文件内容进行处理,并同意第一列每个单词出现的个数,左图为源文件,右图为处理后的文件。

答:

open INF, "excel.txt";

my $line = <INF>;
my $string_num; #统计单词出现的次数
while (defined $line) {

    if ($line =~/^[a-z]+,(ww),(ww),(ww),(ww),(ww)$/) {
         print "$5$4$3$2$1 ";
         $string_num = $string_num + 1;
    } else {
         print "$line";
    }
    $line = <INF>;
}
close <INF>;


往期真题


《每日一题》第50题FPGA芯片中的储存器资源

直击求职难点,真题秀,剑指offer

请大家持续关注芯司机,我们会带来更多更全面的知识分享,助力学生就业,打造好就业加油站平台

以上是关于《每日一题》第81题Perl脚本处理:利用perl对文本进行处理的主要内容,如果未能解决你的问题,请参考以下文章

每日学习:Perl语言学习之文件读写(open)

LeetCode每日一题刷题总结

通过从perl脚本调用的批处理文件设置环境变量

81.LAMP,PHP5和PHP7安装

4天让你学会perl脚本,利用perl代替二十个人的工作量!

perl 进程之间的 perl Win32 信号处理