在perl中有一些专门用于处理列表数据的模块,比如说list::util模块,该模块包含在标准库中,能提供各种高效的常见列表处理工具。因其用c语言来实现,速度一般都挺快!
【例01】扫描符合条件的某个列表,并取出第一个符合条件的
常规做法:
如果改用list::util模块提供的first子程序,就要简单的多
【例02】求1到1000之间的和
常规做法:
如果改用list::util模块提供的sum子程序,同样很简单:
【例03】求一组数字的最大值与最小值.
常规做法:
如果改用list::util模块提供的max子程序,则非常简单:
同样道理,使用list::util模块提供的min子程序,可求最小值:
【例04】对一组字符串进行排序
如果用常规方法的话,必须按顺序一个个进行比较,用list::util的maxstr子程序可以轻松实现:
【例05】对列表中的元素随机排序
如果用常规方法的话,很难实现,而用list::util中的shuffle子程序,则非常简单,一条命令搞定!
【例06】检查列表中是否没有某个元素,或者有任何元素,或者所有元素都符合条件。支持类似grep语法
如果用常规方法的话,很难实现,而用list::moreutils同样很容易实现,代码如下:
【例07】同时处理多个姓名列表,每次取出2位
【例08】合并多个列表为一个列表
第1次: 第一个列表中取a,第二个列表中取出1,第三个列表中取出jerry
第2次: 第一个列表中取b, 第二个列表中取出2,第三个列表中取出alice
......
依次类推!
【例09】往指定的字符串中加字符
可以用list::moreutils中的insert_after子程序
【例10】对两个列表进行操作,第一个列表平方后,和第二个列表求和
可以用list::moreutils中的pairwise子程序
【总结】
如果上面的方式用普通的方法实现,需要多次循环遍历,很麻烦,而将复杂的算法,数据结构用c来实现并封装在list模块中,则可以实现很多看似复杂的功能,从中也可以看出perl的强大之处在于cpan,有众多的模块支撑!
发表评论