本人学perl过程,也许能给新手一些启示

本人学perl过程,也许能给新手一些启示

本人学perl过程,也许能给新手一些启示
我是在去年进Asterlink公司的时候才知道世界上有一门叫Perl的编程语言,当时对用perl写的
cgi程式的概念,以为是过时的技术!因为本人在大二时候去大学阅览室,那边还有4,5本讲cgi的,到
了大四再去,全部是php了,cgi踪迹皆无,由此我当时得出来这么一个概念cgi已经过时了!
现在想来真的是可悲!流行趋势造成了国内perl被php取代,postgresql被mysql取代。

不扯远了,转入正题,当时由于我进公司,对perl一无所知,还好老板也是知道国内perl的发展情况,所以有时间让我边学边练,呵呵,可惜书店里面书都难觅,最后只能下了几本perl的电子书,而且因为没看什么Perl的好书推荐导读,读来读去,还是不懂深奥的perl,于是开始搜关于perl的帖子,结果找到了perlchina,当时联系了到了joe,还有hoowa,于是便有了perlchina上海聚会,呵呵,当时,得到一本joe送过来的win32下perl编程,对我初步了解perl有了一个新的曙光,然后读完之后,按图索骥找到了最最权威的大骆驼的电子书,我没找到中文版的,奶奶的,一知半解的看了一遍,开始有点感觉了,于是开始给老板做最简单的用perl的Net::SMTP发送邮件,然后再开始做关于perl于数据库结合的一些报表,然后逐渐开始深入下去了,也在我的同事coolshoulder的带动下,开始学linux,(懂linux可以让你更好的了解perl)天天通过putty,ssh在远程服务器上干活,因为当时俺Emacs水平太臭了,不会用它的cvs,也不知道eclipse,所以直接在备份之后的远程环境下编写,这个要求很高的记忆能力,因为没有eclipse的跳转和也不知道什么是Emacs的tag,所以不得不记住很多函数(绝大多数是公司自己定义的),还有公司自己定义的模块,必须要知道这个模块和函数的来龙去脉才能动手实施,于是也算是在通读源码,属于从理论到实战,看公司当年高手写的代码,遇到过当时很丢人的问题就是看到太多的hash引用,搞得丈二和尚摸不着头,print不出来,后来还是通过 Data::Dumper解决了问题。呵呵,接下来就对perl越来越顺手,什么不懂,就会自己做一个测试脚本来观察到底会得到什么结果,这点很重要的,一定要动手,不然很多错误记忆不深刻的,比如那个邮件 @符号需要转义,我是深有体会了。呵呵,一辈子不会忘了!
入门书win32下perl编程还有perl学习手札!
然后再开始读大骆驼!
呵呵,必要的动手,不要怕出错,将use strict一定加上,还有Data::Dumper,不懂这个到底是hash引用还是变量还是对象就print Dumper(%xxx);
以上我学perl的一点心得,希望能抛砖引玉,为perl做一份贡献,让更多徘徊在这个perl神圣殿堂门口的兄弟早日登堂!
还有提到一点,从同事冷酷.
还有提到一点,从同事冷酷那边学到了不少关于perl网络编程的知识,呵呵
冷酷(fkiori)对msn机器人的研究造诣,msn机器人就相当于一个系统的界面了,可以
通过msn机器人操作你的远程服务器,并且能够自动发现网站出问题,比如数据库进程死掉
自动报警!省了值班人员!不过也苦了维护的人,机器人不闪还好,一闪就。。。。。
相信国外的几个工程师对此比较深恶痛绝的。哈哈!
机器人闪?这个意思是机器人当掉了?呵呵,那冷酷会不会又要挨老板骂了..?呵呵
闪是报警啊!.
Asterisk占据asterlink业务的80%以上,
www.faxmicro.com
www.tollfreeexpress.com
www.tollfreemax.com
这些都是基于asterisk的应用服务提供给用户使用的!
含美国工程师(算上兼职的)一共有15个技术人员!
呵呵,但是业绩却是惊人的,2005年一年300万美金营业额!
还没有自己的市场部的人,只是主要靠google,还有yahoo。
呵呵,老板特别能侃,会说英文,带台湾羌普通话,但是字不太会打。
asterisk这个东东潜力还是蛮大的!
目前搞perl的sledge框架移.
目前搞perl的sledge框架移植,不过这边好像就除了大连英极没有人用了,唉!
补充一下,--楼主在一楼.
补充一下,
楼主在一楼提到 Data::Dumper 的用法,似有不妥,
我也习惯使用 Data::Dumper 来调试程序,
但是建议用 print Dumper( \%xxx ); 而不是 print Dumper( %xxx );
呵呵,谢谢指正!--.
呵呵,谢谢指正!
另外,Data::Dumper 模块有两个特点:
第一,简洁,只包含对数据的描述。
第二,输出符合 Perl 语法,因此可以重构对象,有持续性要求的应用用它最好不过了。

但是,高级的调试,我再推荐一个模块:
Devel::Peek

这个模块可以输出更多的信息。