- 论坛徽章:
- 2
|
平时的工作中,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。就是这样。
|
|