免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345
最近访问板块 发新帖
楼主: send_linux
打印 上一主题 下一主题

Perl高级进阶,你不得不看的Perl语言精粹(获奖名单已公布-2013-8-15) [复制链接]

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
41 [报告]
发表于 2013-07-29 10:54 |只看该作者
回复 40# send_linux


    明白了。。。期待中...{:2_170:}

论坛徽章:
2
午马
日期:2015-01-27 11:22:392015年辞旧岁徽章
日期:2015-03-03 16:54:15
42 [报告]
发表于 2013-07-30 00:16 |只看该作者

  平时的工作中,perl的使用 范围不大,举个实际工作的例子。

  如ORACLE RAC的整个管理软件里,需要的在安装/部署阶段的大量脚本是用perl来完成的。 比如读取设置环境变量,注册服务等内容都是perl的模块。

  基本上接触到的 如正则表达式匹配字符串, 像oracle的脚本需要知道当前的ORACLE_HOME而同时没有找到环境变量,就需要从RAC ocr的内容里去grep,用事先定义好的perl串来处理。
  先讲他的优点,为什么选择了perl。
  perl的可移植性比较好,有些人认为shell脚本也可以移植,但在windows上就没这么简单了。 所以perl在跨平台企业级应用里是有市场的。
  同时perl稳定,企业级应用当然不希望因为不同的perl版本影响整体的稳定性。 比如python2和python3就做不到

  但与此同时,perl也没有别的太多优点, 他实在是一个胶水型语言,需要他的时候就拿上来用一次。
  比如之前oracle的 asmcmd工具套件都是用perl来完成的,基本上整个框架都已经很完善了,还是因为效率问题 在新版本里全攺成了java/c.
  perl也可以配合smtp server 做简单的邮件收发工作,但我们现在更喜欢python的样子,python提供的特性更新更吸引人。
  perl处理数据库还是个不错的主意,但这也慢慢限制在小应用场景, 在大并发的环境下,可以用scala等jvm的实现,

  基本上承认perl不是一个全能的语言,不是一件很丢人的事, 但我们可以做perl做很多事,而且只要我们想起来用perl,然后去用,就这么简单,少和别的语言做太多比较就好。。

  perl的一个优势领域还是在于对正则表达式的支持。我认为很多人学习正则表达式都是从perl起步的,这也给perl留了好多用户。

  当然有时候能用perl或者c完成的工作,我更倾向于c语言, 我用perl的时候也会不自觉地去把代码写得不易读,代码会很短但影响了可读性, 等到review或者之后自己再看的时候,会遇到问题。相比之下,我认为c的可读性比他好些。

还有一个问题就是, perl并不是不可替代的, 在数据处理领域的效率很高,但别的方面 做cgi有php/python,  做科学计算不如python, 做系统监控脚本不如c语言。

当然对于perl 经久弥新,我是很赞赏的,不过我以为 其中很多人 会像我这样,写perl没有别的语言多,比如我会主要写c语言,perl用在整合脚本里。 当我需要我的程序注意“windows/linux跨平台可移植性”和“版本延续稳定性”时候,我会考虑用perl,而不是python。就是这样。



   

论坛徽章:
0
43 [报告]
发表于 2013-07-30 23:26 |只看该作者
书还给我留了一本不?:wink:

1、谈谈您对上述提到的Perl高级技术的一些学习和使用经验。
学习perl有3年多了,真不知道有这么多高级技巧,尴尬。
记得最初看perl时,说perl的功能90%是用来处理文本,非常同意啊,我的工作是IC数字前端,经常会处理仿真产生的log,或者将excel表格处理成仿真文件,各种正向处理和反向处理,这些我都是用perl实现的。组里就数我的perl最好,别人有需求时,也都是由我来搞定,挺有成就感~
除了递归和迭代,没用过别的上面列的那些高级方法,但还是能实现想要的功能,也许就是路要长一些吧。
大学时学过C,不过基本还给老师了,因此,现在来说,我只会perl,不会C,因此我算不上是在用perl写C。
平时遇到点什么琐碎的事,都习惯地用perl来处理一下,即使手工操作量不大,我也宁可用perl来处理一下。一方面是懒,一方面是比起人来说,计算机更擅长做重复性的工作,而人在重复工作时可能会出错。
有时在网上看到智力题,或者号称某人开发出世界上最难数独,以及版内的世界杯(欧洲杯?)题材程序题,就会手痒,用perl来搞一下,虽然花费了不少时间,不过当结果出现那一瞬间,真是无与伦比的成就感啊!!!
当时写了个“数独杀手”的脚本,发在版内,可惜没得到称赞,郁闷啊。
另外,话说,俺的飞信签名就是“我要成为perl专家”,虽然有点远,一直在努力!

2、分享您在Perl编程中的小技巧。
平时多看看perl的各个函数和变量之类的使用方法和说明,有不懂的地方就问一问,然后多用。之前看过版主介绍的grep和map,自己又学习研究了一番,真是受益无穷,看到array和hash就会尝试着用grep或者map,而以前都是用foreach。
遇着问题时,都试着用perl来解决,尽可能用较短较少的字符来实现目的,不仅能提高对perl的理解,而且也还蛮酷的。
之前看的书里面说,如果能用array,就不要用hash,因为hash比较expensive,可以把hash的key预先设成parameter数值,再通过这个值来访问array,会非常节省资源。由于我都是用来处理文件,不用考虑消耗,所以说不乱说了,也许对做web的人会有用。
hash在使用一个新的key时,并不会报错,而是自动生成这对key=>value,这有时也会产生问题,还不好debug,书上说可以使用pseudo hash,来避免这种难以发现的问题。

3、从程序语言层面,您认为Perl语言为什么能够保持长青?
长青这东西,不太好说啊。个人认为,只要有用,只要好用,就会有人用,会有多人用。
我都是自己写perl,从没使用过CPAN,就不发表看法了。
不过听别人说,CPAN对perl是极其重要的,是吸引人的一个极其重要的原因,另一个原因是正则表达式。
对我来说,正则就足够我一直使用并不断学习perl了。


个人的一点浅见,如果有说的不正确的地方,请帮忙指正一下,谢谢。

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
44 [报告]
发表于 2013-08-03 03:32 |只看该作者
这个真搞不了 Perl一直感觉语法很古老和苦涩难懂 没有去学习 一直在使用shell 回复表纯支持下~~

论坛徽章:
0
45 [报告]
发表于 2013-08-05 12:30 |只看该作者
工作中才开始学习使用perl,感觉自己还处于初级~中级之间的水平,很困惑, 不知道该怎么进一步提高

论坛徽章:
0
46 [报告]
发表于 2013-08-05 12:41 |只看该作者
回复 27# lpnueg4
最近工作刚好也需要selenium 进行网页自动化测试, 真希望你能开个帖子啊


   

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
47 [报告]
发表于 2013-08-05 13:25 |只看该作者
Perl 语言从文化上鼓励创新和差异化,这和 Python 完全不同,更加符合黑客的精神。

Perl 语言从 2001 年,从 5.8 版本开始,就完成了字节到字符的语言进化,而 Python 则分化成两个分支,Python 2.x 和 3.x. 自断双臂,实力大减。

Ruby 从设计上强迫程序员使用面向对象的设计风格,并自以为是的认为面向对象设计是最有前景的语言编程范式,这让许多有 类C 语言背景的程序员大为不爽。而 Perl 语言则不断增加语言的特性,从闭包到引用,逐渐的成为一种拥有多种编程范式能力的完整语言。

Perl 的开源精神也体现在各种免费资源上,所有的计算机语言类书籍中,Perl 的也许是最多的。

从 5.10 开始,Perl 的核心开发已经不是一个人的智慧,Larry wall 已经 基本不再过问 Perl 5 的开发进程,一门心思构建 Perl 6 这个号称能像 Lisp 一样自我进化的梦中语言,并将一大批拥有此类梦想的狂热主义者,自以为是的家伙引向一条走火入魔的不归路。

少了这些激进和狂妄的家伙,Perl 5 的进化平稳和健康,进化速度越来越快,转眼已经到了 Perl 5.018.

Lisp 天生秉异的特性使之能传承编程境之道,但 (+ 1 2) 的写法和漫天的括号,让越来越懒的程序员越来越吃不消了。虽然 Lisp 的宏据说能改变一切,但宏俱乐部的劝告竟然是,不要使用宏。

创造人的上帝使用的代码不知道用了什么编程范式,能让创造出的东西同样拥有创造的能力。

论坛徽章:
0
48 [报告]
发表于 2013-08-05 16:44 |只看该作者
回复 46# amysue


    有问题你开帖子呗,我尽量给你解答!很久没用了,一起讨论!

论坛徽章:
3
金牛座
日期:2013-08-26 10:25:02摩羯座
日期:2013-09-09 15:14:322015年亚洲杯之约旦
日期:2015-05-06 09:33:56
49 [报告]
发表于 2013-08-06 11:16 |只看该作者
最近在学python ,看到perl也心痒痒啊

论坛徽章:
0
50 [报告]
发表于 2013-08-07 18:29 |只看该作者
本帖最后由 fkiori 于 2013-08-07 18:47 编辑

1、谈谈您对上述提到的Perl高级技术的一些学习和使用经验。
高级技术就是cpan,经验就是多看文档。

2、分享您在Perl编程中的小技巧。
Perl可以用很多种方法完成一件任务,每种方法都是一个技巧。不同的技巧适合不同的人。

3、从程序语言层面,您认为Perl语言为什么能够保持长青?
这个问题,我想说说我的想法。
1. perl被称为黑客语言,对于很多新手来说,是一种神秘的感觉,所以会源源不断的吸引人来学习。
2. 对于已经使用perl的人来说,很方便很快速,更重要的是,我觉得perl并没有被标榜为特定的技术语言。
例如php主要就是做web, java就是来做大型的项目, C#主要用来做ASP和Winform, delphi主要做Winform
当更新更便捷的语言出现在特定的技术方面,很快原来的语言就会被取代。
正是由于Perl好像什么都会,又什么都不做,所以它不会被新技术取代,但是也是一直生存在一种夹缝中。


-------------
ps。 有没郑州的Perler,或者对Perl感兴趣的。想招聘1-2个Perl程序员。soho全职工作。QQ: 144006
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP