设为首页 收藏本站
查看: 1085|回复: 0

[经验分享] perl的力量

[复制链接]

尚未签到

发表于 2017-5-17 07:05:30 | 显示全部楼层 |阅读模式
有空初略堆perl入门了一下,发现perl确实非常强大。
什么是Perl
这个在百度百科里面有定义,但是我想我的理解是,perl就是一个C的脚本化的语言。语法思想基本是一样的,除了一些关键字,而这些关键字及其简单,应该说是C语言关键字的简化定义和分类。说perl来源于C,又胜于C,她的主要语言特点就是尽量减少代码量。就像写了javascript以后,再去熟悉各种prototype比如JQuery一样,忽然觉得用起来是如此的简单和强大。
跟java的虚拟机形式类似,perl也可以跨平台。所有perl命令都是通过一个入口执行,与操作系统隔离,但距离有不远,随时可以越过这个入口深入系统内部,所以她很强大。

为什么用perl
我想perl不是所有场合都适合用的,因为perl毕竟是脚本语言,所以她最适合服务器端的大量琐碎的事物,肯定比写一些shell脚本容易强大的多。
如果要写一些大型的应用服务,比如web服务等,虽然可以写,但是由于她的灵活性,难以在开发成员多的情况下统一风格,维护升级。所以还是用java这些面向对象的语言让开发者有更多时间关注程序以外的东西,而且风格较为统一,容易维护升级。
如果要写一些驱动或者系统级别的服务,比如ftp服务器等。虽然可以写,但是由于她是脚本语言,还是用C语言来的快速直接。
perl就像旅行时的一把瑞士军刀,别的语言不会的,她会,别的语言会的,她更会。在我们想偷懒的时候能帮一把大忙。

如何用perl
perl脚本语法众多,不过我想关键的语法如下:
$value 代表变量
@array 代表数组()
%Hash 代表HashMap{}
&function 代表函数
此四个符号是perl的核心关键字,这些关键字的组合可以代表很多意思,因此有人把他们叫做funny charactor
另外还得提到那些跟C语言一样的符号,
比如*value,*号代表取地址,不过也可以用上述的四个符号代替实现,那就是在前面加上转义符\,比如\$value,\@array,\%Hash
比如->,是*的反过程,即解地址,比如->[0]访问数组元素,->{"key1"}访问Hash元素,->(value1,value2)访问函数(调用函数)。

除了这些还有作用域,有三种,out,my,local
根据字面就很容易理解,perl不像其他语言,perl作用域是要自己去显式的申明的,要不然解释器也不知道你到底是那个作用域的,因为毕竟是脚本语言解释型的。

还有,加上一些固定约定和强大的函数库。
比如数学函数,字符串操作函数我就不说了,大家都有,perl当然要有。
比如数组相关的函数,perl对数组操作那是极大的功能增强,常见的sort,reverse函数。
最后重点提一下进程相关函数,perl真不简单,她能提供进程的创建,运行,休眠,等待,销毁的完整生命周期的管理,还有对多线程的支持也是相当的到位。

最后,提一下关于perl对面向对象的支持,提供了package,require,this变量等类似java等面向对象语言的一些功能。虽然跟那些还稍微逊色一点,但是这正体现了perl的强大。

好了,这些都是我对perl的入门感想,如果有时间的话我一定会深入应用一下perl。
To Be Continue...

在这里我要补充感慨一下,为什么那些语言啊,新技术啊,新的idea大部分都born in America呢?其实我要谈论到一个关于什么是创新的问题上。
什么是创新,难道非要前无古人后无来者?肯定不是,一个思维方式的转变,一个知识的整合都可以是创新,而那些完全从无到有的创新,我想历史上也没有几件。国外为什么会不断出现各种新技术?如果问多问一个为什么就明白了。
任何的新技术的出现都是为了解决一个问题而出现的。而这个新技术都是基于某种前人的技术的思维方式的转变或者各种知识的整合而出现的。
就那perl来说,它不可能凭空想象出来的,如果翻开perl的历史,我们就知道,他的出现是作者在做系统维护的工程中为了解决一个问题而发起的。而当时现有的技术对于他的问题不能很好的解决,所以作者在当时最流行的C语言的基础上加入和awk等脚本语言的动态特性而发明了这个一个perl语言。当然正是这个perl的独特创新使他饱含生命力。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-378241-1-1.html 上篇帖子: perl升级安装 下篇帖子: perl 分号(;)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表