perl编程总结

来源:互联网 发布:微课录制软件 编辑:程序博客网 时间:2024/04/29 22:34

perl语言在文本字符串处理方面无比的强大,最近半年时间里perl写的几个工具的确方便了不少工作。文本自动化处理上perl是不二的选择。但是对perl编程,曾经也有很多迷惑不解,这里一并总结备忘一下perl编程的感受。

1、perl正则表达式上其他语言是无法匹敌的。

2、perl很少需要你去关注内存,这点与习惯于每个内存字节都需要自己保证的C编程很大不一样。可能开始时这点很让人不解。perl会自己管理内存,你无法主动申请和释放(不包括文件、socket等一些资源,主要指数据结构)。即是你把一个局部变量的引用赋值给全局,出了这个局部变量的作用域,你还是可以当做全局的一样用,这点这C中是不可想象的。

perl吐槽:

1、感觉脚本语言在表达数据结构方面,功能上也能做到像C语言一样定义各种你想要的数据类型(结构体->哈希数组、枚举->常量),但是不够直观,阅读代码也是很头疼的。perl数据类型不需要提前定义,直接使用就已经定义好了。这样perl脚本写个小程序也许很方便,一旦程序规模和复杂度上去了,看到一个变量,你是无法一眼看出他整体的数据类型。这样编写和阅读代码是很不利的。

解决:1)对复杂数据结构,要给出尽可能详细的注释。同时对函数、变量、关键分支、关键处理,要给出详细的注释,最好给个简短的实例。良好的注释风格在脚本编程上尤其重要,不然一个月后对自己写的脚本代码也无法看懂。

如循环解析参数的数据结构--哈希数组:

@param : %param_hash  -> $name  #参数名称

                      -> $type  #参数类型

                      -> $subflag  #是否有子结构体(0/1)

                      -> @subtype : %param_hash ...#子结构体

2)对数据结构的定义、用途一定要清晰,当然编写中经常修改自己定义好的数据结构,所以详尽的注释是必须的。同时,可以利用 print Dumper(%hash/@arr)."\n"; (包含use Data::Dumper;)适时打印复杂数据类型变量的取值。

3)阅读和编写perl代码工具,可以选择Source Insight、UE、Notepad++,对阅读编程代码还是很不错的。当然,SI对perl的变量高亮(shift+F8)还不尽如人意;复杂数据结构也无法跳转。

4)对复杂的数据结构,引用时不要像C语言一样随意写的很长、嵌套的很深。用数据结构的引用或用一个临时变量来接收,会使代码看起来简洁得多。如,对hash数组操作:

作为输出:my %hash =();......push @{$p_arr_params},\%hash; #注意要保证每一个%hash数组元素是重新得到的hash。

作为输入:my %hash = %{$p_arr_params[$i]};......

0 0
原创粉丝点击