一、序言
关注perl有一段时间了,大约半年吧,由于自身需求,读了<<精通正则表达式>>一书,对perl在正则文本处理的优势感到惊奇,有了学习的欲望!于时咨询了相关的技术人员,被告知如果在时间允许的条件下可以进行学习!
在学习shell的过程中,awk、sed的正则处理(正则不一致)让我感到窝火,而perl的正则一体化帮我又下定了少许决心!
shell+awk+sed =perl
别人的建议永远只是起一个辅导作用(毕竟像我这样一根筋的人),于是我又开始疯狂的在知乎中搜索perl的相关评论,看企业对perl的招聘要求,看perl相关书籍的销售量,看perl语言的排行版,又强化了学历perl的欲望!
由于学习了python的相关知识,了解到python的相关内容是从perl借鉴过来的,更坚定了学习perl的动力!
补充:在纠结一下用python还是bash最后选择了后者然后不得不在维护过程里依次加入sed, awk等外部命令,最后得到了一个Perl的糟糕替代品!
二、我为什么要学perl
网上搜了太多的博客,大多数都是说perl"已死"!
我想说的是我非常赞同,你可能会问既然赞同了,为什么还要学perl?
对perl已死的解读:perl早期致力作为编程语言而不是脚本语言,CGI早期一统天下,所以在20世纪初特别火,可是后续的Java、Python、PHP等前后端一体化的语言的兴起,并且perl对Web时代变迁嗅觉不灵敏,措施了机会,慢慢在中国沦落!
(1)在Web编程方向已经out了!
(2)语法晦涩,难以维护!
安利一波:Perl的强大在于它可以取代awk和sed并结合其他shell命令快速的处理文本(参考PerlTimeline),另外它使用弱数据类型(即不指定变量是数字还是字母),使得它对于不太懂编程的人来说就非常合适
我对perl学习的定位:核心关注文本处理和正则处理,作为系统的脚本语言来学习!
各Linix内嵌了perl就更证明了这一点,RHEL8系统的perl是5.26版本!
总归:仁者见仁,智者见智!
三、perl的相关了解
3:Perl已死吗?
14:除了生物信息学,perl progammer 们都在从事什么工作?
15:在CGI时代很火的Perl,为什么在现在的WEB开发中明显不如Python和Ruby流行?
19:用 Python 脚本如何实现,启动 Python 脚本的脚本,例如在 shell 中执行 “python test.py”?
三、python和perl的异同点
浅显的理解他们两个的区别:Perl适合文本数据处理,Python适合复杂面向对象开发和数据分析!
两个语言的设计初衷不同:perl侧重文本处理,而python侧重数据计算,运维的话学perl会更好吧,但毕竟都在发展中应用范围不断扩展,就像大家所说的都不单单是简单的脚本语言了!
总之:不用只听他人的一面说词,想知道Perl语言好还是Python语言好,最好的办法是你自己已经知道但是不去执行而已,办法就是把两种语言都学会,看看后来你最常用哪个,用的最多的最顺手的自然就是最适合你的,不管怎样,从结果上来讲,学过Perl/Python语言之后加深了你对Perl/Python语言的理解,(或者是反过来),那也不失为一种收获,所以并不是浪费时间。
国内用Perl:转SA/DBA了、生物信息处理!
相关参考:Perl程序员
四、后续
DevOps是必备技能
awk、sed博客专题(从应用入手)!
学习:对比python和shell,以及C语言来学习!--->共性和特性!
数据库专题!--->玩别人没有玩过的!