`
yanghuidang
  • 浏览: 950586 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Perl and I[所有的PERL爱好者都应该看一看]

阅读更多
一首perl写的诗:

#!/usr/bin/perl

APPEAL:

listen (please, please);

open yourself, wide;
join (you, me),
connect (us,together),

tell me.

do something if distressed;

@dawn, dance;
@evening, sing;
read (books,$poems,stories) until peaceful;
study if able;

write me if-you-please;

sort your feelings, reset goals, seek (friends, family, anyone);

do*not*die (like this)
if sin abounds;

keys (hidden), open (locks, doors), tell secrets;
do not, I-beg-you, close them, yet.

accept (yourself, changes),
bind (grief, despair);

require truth, goodness if-you-will, each moment;

select (always), length(of-days)

# listen (a perl poem)
# Sharon Hopkins
# rev. June 19, 1995

=============================================
Perl and I[所有的PERL爱好者都应该看一看]
作者:netken

我接触 Perl 的时间并不长,不过却对这种语言的感情很深,不知道为什么,我发现我对 Perl 的感情已经超过了一种计算机语言的感觉。
仔细想想,当我每开始写代码的时候,心中总有种很奇妙的感觉,当我面对着这些代码,总是用一种艺术的眼光去欣赏他们,从中得到乐趣。
我的机器上有两个东西是最长用的,一个是 EditPlus!2.1c ,还有一个是 VC++ 6.0 。VC是不用说了,总要用他来编译东西的,而在我
写一些小程序的时候,总是用 Edit+ 来编写代码。Edit+ 是一种带颜色分析,语法加亮,自动完成的代码编写辅助工具,是一个朋友推荐给我的。
自那时起,我便深深的喜欢上他了。不因为什么特别的,因为我感觉他是一种完善,对艺术和美的完善,当我用 Edit+ 打开我编写或某些人编写
的代码时,我感受到的,是一种特殊的美丽。她深深的把我吸引。
我以前常用 C , 在我写 C 的时候,总为他的严谨的结构而赞叹,那是为程序员而创造的语言,看着那些变量的定义,和条件,逻辑代码段,
我总有很敬畏的感觉,所以我的思想也就紧张起来,来认真的编写这些东西。C 给我的感觉,就像一个家长,严格的要求着你,但同样也是束缚。
当我用 Edit+ 打开这些代码,我却又发现了一处美丽----颜色。各式样的颜色,按照其法则对应着各个字符,让我觉得这已经脱离了计算机语言本身。
可能我从小喜欢音乐和绘画的原因,当我看见这些被 Edit+ 分析过的代码后,我总有种抑制不住的冲动,我总想听着抒情的乐音,随口附和着,
然后再欣赏这些完美的代码。她就好象一件艺术品,不仅仅是艺术品,她包涵了更多。颜色,搭配,设计,结构,还有最重要的,那是人的思维。
人们各式各样的思维方式和逻辑方法都展现出来,让你去品味,欣赏其中的艺术。那是多么的舒服啊。
有很多人总觉得计算机这种机器是很冷冰冰的,没有人的感情,其实我倒觉得不然,人对某件事物的感情并不是由事物自身所造成的,而是我们人
本身对某个事物的印象所制,我们总爱把自己的意识强加到事物的头上。我们喜欢他了,就说他可爱,我们讨厌了,就骂他无聊。
而我喜爱代码,代码的艺术,我从未感受到机器的冰冷,正如我很少在画着 Kitty Cat 的小手提包上花费过多的心思一样。而某些女孩子却正相反Wink
可是唯一的不足,是在写 C 的过程中,我总是很紧张,当我看到编译时的 Error 字眼,我精神上往往打击不小。C 太 Cool 了。他给我的乐趣也
因为他的过于严格而让我敬而远之。
突然,我发现了 Perl ,我常常感谢这种飘渺的神灵,好象总能在关键的时候给我一丝光明去继续热爱我的代码们。而 Perl 真正让我做到了。
初接触 Perl 时,总觉得这种语言很怪异,但用着很舒服,不过在使用的时候,总是爱忘记那些可爱的 $ @ % 符号,总是用 for 来做任何的循环。
不得不承认,这是 C 程序员的悲哀,是被 C 强制出来的毛病。在初写 Perl 的时候,我总是不自然的就在代码段的开头来个 int my $a;
然后得到的却是正确的执行结果,当我再次审视我的代码,我真的发现了 Perl 的可爱,不过确实是很不习惯的。
如果说 C 是严父,那 Perl 可就算是慈母了,他对我太宽松了,甚至我在使用一个 array 的时候都可以不用定义,甚至我可以直接使用 hash 这种
复杂的数据结构,甚至我可以写出 $hash{'abc'}[2][4]{'ccc'}[2] 。我可以定义个 10x10 的 array 而只需一句: my $array[10][10];
可当我定义了以后才发觉自己的愚昧,在 Perl 中,我何必定义他呢?

刚来到 Perl 的世界,很多的不习惯,我甚至总爱在 print 后面加个 f ,总想在 open 前也加个 f ,总把指针的参照弄混了,而过早的使用了
我根本不知道的功能: *ABC = \$time ,当我写完他,我所要求的什么都没发生,但事实上却发生了很多。
现在回忆起 Perl newbie 的时候,很是有趣,不过庆幸的是,这种时光没有持续太久,因为我有 Edit+ 。当我真正的用 Perl 来写些东西的时候,
我才知道了语言的魅力。我才真正的理解到,为什么我总对 C 诚惶诚恐,因为那只是一种计算机语言,他真正适合的是那些我所敬仰的前辈。
而我呢?一个漫不精心的小子,当然不会适合。因为我太喜欢计算机了,以至于我的喜欢变成了自然中热爱的一部分,所以我需要的,是一种更
自然,更有人味儿的语言, Nature Language 。而 Perl 不得不算是其中的佼佼者。

有些时候,我总爱想自己是不是有些多愁善感?不过是针对计算机罢了。不过,无论怎样,Perl 确实给我带来了光明,一种恒久的动力,
Perl 是美丽的,她如 Pearl 一般散发着自己的光芒。
如果你用过 Perl ,那就不妨来深入的学她,如果你想了解 Perl ,那我很愿意而荣幸为你打开这扇通往 Perl 世界的大门。
在 C 的面前,我永远都是诚惶诚恐的。而在 Perl 的面前,我却友好的伸出和打开了我的思维。

Larry 是位语言学家,所以我想他在创造这门语言的时候,就少了那份生硬的书生气和钢铁的味道,
而给我们一种朗朗上口,一种舒服的感觉,当我们写perl时,就好象真的是一种创作,
不仅仅是逻辑上的思考,还有我们一些感性的东西溶入其中,写 Perl 就好象有点写诗的味道。
不可否认的,代码的艺术,在 Perl 的身上表现的淋漓尽致。
是的,如果光要说华丽,我觉得 Perl 还不能算是最字,后起的 Python 才应该算是华美之最,
符合现在的流行,全部的OO。语句通顺流畅,一气呵成的感觉几乎在你写任何代码的时候都能体会。
但,正如我们需要的不是看家逮老鼠的巨莽,而是能带我们穿过沙漠的骆驼。
还是不可否认的,Python是有扩展力的,极大的扩展力,不过毕竟他现在还不强大,也只是逮些大老鼠,为我们而工作。
但 Perl 呢?可能他有这样那样的缺陷,可能他生的不怎么好看,可能他不太好闻,可能他有时候也会对你起倔劲,
但,他的强大让我可以把这一切不好都忘掉,因为他有强大的生存本领,他能帮我轻松的度过沙漠。
而且,Perl 几乎能做一切。我不想在列举这些或那些 Perl 能做的事,
不过我到想起了一种 Perl 特有的,而且常常被人用来说笑的思路,
unless 思路,那就是 Perl 不能做什么?其实 Perl 不能做的也很多,至少现在他不能为我们端茶到水。
Perl 能学会么?这可不好说,说不定在 CPAN 上一找,却真能发现呢~~
可惜,Perl 生存的环境有些严峻,从前,沙漠里只适合那些具有冒险精神的人来探索和居住。
所以,在 unix 的老家,即便 Perl 很受人们的欢迎,可在 m$ 的异地他乡,却常常受到冷落。
不过时代总是在变化,现在越来越多的程序员也开始注意到了这个神兵利器,这把瑞士军刀了。
这是值得庆幸的事情。
不知道大家在相互交流的时候是否注意过对方的表情,传闻中,好象 Perlish 们面布总有特殊,狡黠的微笑。
我呢?我却常常在和朋友聊到 Perl 的时候,或者编写 Perl 代码的时候,或者翻开一本厚书来,想找某些单词的时候,
或者遇到一些乱七八糟的数据的时候,或者看见某个网爷不顺眼的时候,或者看见首饰店里的珍珠饰品的时候,
或者吃饭我爸妈让我搬凳子那筷子,端菜盛饭的时候,或者我要去出去远行的时候,我好象脑子里都能隐约浮现出几个大字: P..e....r.l
啊,当然还有看见网友给我发来的 @$%@$%$$^%$&%& 的时候,我突然发现 Perl 真的无处不在,我那个xx朋友竟然也会 Perl !!!???

Perl 可以说真的是无处不在,或许当你偶尔间翻开书一看,就会有你熟悉的 Perl 显现出来,
当你写下你一天所干的事情,或许你又会发现了 Perl :
study, write, study,
do review (each word) if time.
close book, sleep
奇迹发生了,又是 Perl ?
Perl 的强大恐怕在这里也能体现吧?
那么 Perl 和 C 是一个档次的么?
恐怕不是了,我们可以拿 Perl 来写诗,我们可以空闲,无聊的时候拿来 Perl 小玩一番,我们可以在读书写日记的过程中学习,练习 Perl . What about C ?
那当然不是一个档次的东西了 ;p

好了,今天写了不少,那么让我们用一首诗在做个结尾吧:
#!/usr/bin/perl

APPEAL:

listen (please, please);

open yourself, wide;
join (you, me),
connect (us,together),

tell me.

do something if distressed;

@dawn, dance;
@evening, sing;
read (books,$poems,stories) until peaceful;
study if able;

write me if-you-please;

sort your feelings, reset goals, seek (friends, family, anyone);

do*not*die (like this)
if sin abounds;

keys (hidden), open (locks, doors), tell secrets;
do not, I-beg-you, close them, yet.

accept (yourself, changes),
bind (grief, despair);

require truth, goodness if-you-will, each moment;

select (always), length(of-days)

# listen (a perl poem)
# Sharon Hopkins
# rev. June 19, 1995

Good Luck!
我相信你会梦见一头骆驼 ...

NetKen.




-----------------------------------------------------------------------------------------------
现在的很多语言都有了向自然语言靠拢的趋势,毕竟以人为本的概念在当今的社会是很流行的吗。
而且 M$ 也可以说是在 UI 方面的大赢家,不仅赢得了众多,绝大多数的用户,同样带来的还有丰厚的利益。
现在的时代已经不是只有几个人来使用计算机,几个人来编写 01101 的时候了,人们已经把计算机做为了生活的一部分
编程可以说也是消遣,娱乐的好内容。
所以,我们现在使用的语言越来越人性化,越来越容易“看”懂,而 Perl 在其中也算是佼佼者了。
当我们看见一个 print 语句的时候,我可以利马知道他要打印些什么东西了,无论是往屏幕,文件,管道,socket,还是打印机,总之,我们知道他要输出了,这比那些 printf,cout ... ... 要好的多吧?
而且perl的函数格式也给人的感觉很好,print "i love camel...";就让人很自然的知道了其中意味。
一些语句的格式甚至更能表达某中意思, print "i love u!" or die; ... ...
warn "i am great than u" if $i gt $u;
hoho,光“看”就能理解了。
可以说,Perlish 们永远都是轻松的,或许他们有数不清的复杂的恶心的厌烦的任务,可他们有 Perl 。
而且不仅仅是一个 Perl interpreter,最重要的是 Perl 的那种 Spirit ,总让事情更简单的作风,总在困境中找寻快乐的精神.
甚至可以这样说,学 Perl 可以不用 Perl ,或者说,每个程序员在学其他语言之前,最好都了解一下 Perl 。
Perl 诞生于 Unix ,可能因此他让别人了解的机会少了不少,不过这丝毫不能遮掩他珍珠般的光芒。
我们不得不赞叹 Larry 的才智和运气,是的,虽然他的手艺并不怎么好,造出了一个很奇异的,但却融合了各种魔力的语言。
或许我们应该讨厌那种四不象的语言,没有自己的风格,但当我发现了 Perl ,我想这一切都会改变。
unix 下的程序员我想是受益颇多的,几乎有了 perl 以后,他们就很少在去记忆某些复杂的命令,任何事情都开始变的简单和明朗了。
我想 Perl 在 window$ 下发展不如 unix 的原因,可能因为是异地他乡的缘故,或者说是window$ 的用户已经习惯了那种透明,
习惯了一鼠天下的情形。而 Perl 的强大,却往往不是 tk 能表现出来的。
不过说起 tk ,当然先要感谢 tcl/tk ,而后就要说 ptk 了,我们又要庆幸了,因为 tk 同样也被 perl 采纳了。
快速的制造一个美丽的 GUI 已经非常简单,几乎和 tcl/tk 无异。而且最重要的是,他是平台无关的。当我们拿着一个自己写的 perl tk ,在 window$ 和 x-windows ,甚至 mac os上运行的酣畅淋漓的时候,你心情如何呢?我想要比哪一堆 dll 在 x-windows 下干着急强多了吧?o)
我常常感叹m$的头脑,意识和机智的超前程度是很难有他人能比的。也正因如此,m$才取得了很大的成功。
而且这次,m$也把算盘打到了 Perl 的头上,vs中也推出了 VP -- Visual Perl ,或许在不久的将来,
随着 Perl 6 的推出,网络功能的极大改善和那时网络性能的提高,Perl 的天下也就真的不远了呢?
我期待能看着 VP++ 的出现,hoho~
Perl 确实帮助了我们很多,但他是 Open Source 的,从他的设计到实用都是如此,可能因为这个原因,
让他成不了商业软件中的一员,不过却不能说 Perl 做不了商业软件,ORA 前一段也曾报道过用 Perl 实现了一个医疗系统的设计。
当然还有更多 ... ...
我们现在应该能体会到 Perl 的强大,如果你用过 Perl 的话。
否则,我将很荣幸的成为带领你进入 Larry 和 Perlish 们的 Perl 世界去走一走,那里,你一定会感受一新的
Perl 的缺点吗
也不少,除了解释性语言一般的缺点外,还有就是他的优点--杂和性,也恰恰可能给他带来某些地方的不便(理解上的不便),有的时候,如果我们用 if (! (xx && bb) ) 来做判断的话,可能会很直观,但如果换成 unless ( xx and bb ) 或许,就要小迷上一会,不过这只是刚开始的时候会这样,慢慢也就好了。当然,我们还是可以用 perl 来写 if 的 Wink
perl的缺点还有很多,不过在大多数的情况下,他的缺点和优点是无法区分的,perl教会给我们 tmtowtdi 的精神,可是在很多其他的场合,我们只能说 TOnlyOneWTDI .没有办法,在某些语言来解放程序员的大脑的时候,有些语言却正在束缚。我可不想成为代码机器,可现实呢?
bigApple说过 perl 的晦涩,确实,如果我们深入研究 perl 的内部机理,你会感觉眩晕的。真的。peifang兄说过,若能把 devel 模块看一边,看的懂,那应付导师是没问题了,大概是这么说的,原话记不的了,不过若真能把 devel 看一边,再小写上几行,别说应付了,我看可以teach 了吧~~ ?
如果大家有工夫的话,可以看看 perl 的source,我半途放弃了~~
不过好象以上这些大多是语言都有的缺点,不可能哪个语言没有缺点,也很少出现哪个语言比其他语言优秀的多,不过,作为一个人,我想对物体的接受,是有他情感的一方面因素的,很少有纯理性的,至少我是如此,因为perl给我了一种感觉,所以我沉迷其中,因为perl在我的理解上,teach我了很多东西,这不仅仅是他的易用和强大,更重要的是某中思想。编程的思想,对某种新知理解的思想,生活的思想,很多。。。
说了这么多,还是没有谈到perl的缺点上来,其实如果谁能把某个自己喜欢的物体的缺点说的很透彻,那是真的超凡脱俗的高手了,可惜我不是高手,我也没那么超凡 Wink 不过我知道,大凡只要是一种语言,都在一定的领域内很好用,不然估计很少会有人用他,发明他。
perl的应用范围很广,而且也很方便,所以很多人用他,但从 usenet 上的 comp.lang 下的分类来看就知道了,很多语言都只分了1个类,能和perl相比的估计也只有 java和c 了。
看来perl并不是什么冷门,至少在国外不是。所以国内就需要我们来宣传,没有什么其他目的,因为我们确实觉得他好用,他方便,他诚恳,而且他倡导自由,所以我要宣传他,所以我更热爱他。我喜欢两样东西,简单和自由,这两样perl全有了。
不过对我来说,perl的缺点就是某些时候的速度,不能达到编译语言的境界 ;p ,还有就是还不够简单,你想,如果我只打一个 a b c ,perl就能为我做好一桌丰盛的晚餐,如果我只用敲一个 x y z,perl就能帮把我繁重的工作全部做完~~~~ day dream ing ...
估计下个世纪perl能升级到这个地步吧~~ Wink
还有一点,这个缺点在国内表现的很突出,就是范围问题,国内的大多人还只是把perl做为cgi language 来对待,甚至很多程序员不知道perl为何物,sigh.. 要是搞window$的,还可以原谅(不过马上就不能原谅了),要是做unix的,那就好像学vc的不知道mfc了... ...
所以,国内的这种情形,多多少少,或者说很大的影响了perl的发展和他优秀一面的展示,这是很让我们这些perlish伤心的。
perl再有的缺点,就是他的open source了,既然是解释性的,所以如果没有特殊的方法的话,对某些人来说,是不愿意使用的,他们大多不赞成代码公开,或者很担心钱图的。
还有就是perl的解释器并不是每台机器上都带的,所以,如果我有一个非常好的perl程序,给了别人,如果对方没有解释器,那他最多也就是欣赏一下perl那如史诗般壮丽,却很精巧的代码艺术了 ;p
perl的缺点还有很多,希望大家都来说说,了解缺点才会让我们更加进步,也才会让perl有更大的发展,在我们等待larry宣布perl 6的那天之前,我想我们会尽力让perl 5为我们创造一个又一个奇迹的。我相信,perl能行 Wink
分享到:
评论

相关推荐

    Perl-5.10.0版本

    Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0...

    Writing Apache Modules with Perl and C

    ### 使用Perl与C编写Apache模块 #### 知识点概览 - **书籍基本信息:** 本书名为《使用Perl与C编写Apache模块》,由Lincoln Stein与Doug ...无论是对于初学者还是有一定经验的开发者来说,这本书都将是宝贵的资源。

    草莓perl安装包下载

    它包括perl二进制文件,编译器(gcc)+相关工具,所有外部库(加密,数学,图形,xml等),所有捆绑的数据库客户端以及对Strawberry Perl的期望。 在Linux和大多数类似UNIX的系统(包括Mac OS X)下,perl与系统...

    strawberry-perl-5.32.1.1-64bit perl 解释器

    Perl是一种高级的、通用的、解释型、动态的编程语言,以其强大的文本处理能力和在系统管理领域的广泛应用而著名。"strawberry-perl-5.32.1.1-64bit" 是一个专为Windows平台设计的Perl解释器,它包含了Perl 5.32.1.1...

    Games Diversions and Perl Culture

    考虑到《The Perl Journal》已经不再出版,这些精选的文章为Perl爱好者提供了一种回顾过去并继续探索Perl世界的方式。通过这些精选文章,读者可以感受到Perl社区的活力、创造性和对编程艺术的热情。《Games ...

    Perl开发环境.zip

    - **CPAN(Comprehensive Perl Archive Network)**:Perl有一个庞大的模块库CPAN,包含数万个预编译的模块,几乎涵盖了所有可能的编程需求,可以方便地通过cpan或cpanm命令进行安装。 - **文本处理**:Perl对文本...

    PERL。PERL。ADD

    Perl,全称为"Practical Extraction and Reporting Language",它以灵活、强大和可移植性而闻名。Perl语法混合了C、sed、awk等语言的特点,因此对于熟悉这些语言的开发者来说,学习Perl相对容易。Perl的强大之处在于...

    Perl程序员应该知道的事

    - **CPAN (Comprehensive Perl Archive Network)**:一个庞大的Perl模块仓库,几乎涵盖了所有可能的应用场景。通过CPAN,Perl开发者可以轻松地安装和更新各种模块。 - **CPANminus**:一种轻量级的Perl模块管理工具...

    Perl语言学习.pdf

    * Perl语言是一种开源语言,每个人都可以获取Perl的源代码,并可以根据需要进行修改和发布。 * Perl语言具有速度快和灵活性的特点,适合处理大量的数据和复杂的任务。 * Perl语言的语法灵活,可以使用各种符号和操作...

    minimal_perl_for_unix_and_linux_people.pdf

    In this preface, I’ll tell you about the history of Minimal Perl and the origins of this book. THE HISTORY OF MINIMAL PERL The seeds of this book were sown many years ago, when I was building up my ...

    perl_Perl_

    标题中的"perl_Perl_"可能是指一系列关于Perl编程的示例或教程,而描述则提到“读取源文件,将字母大小写转换,最后输出一个新文件”,这是Perl处理文本时常见的任务。 在Perl中,读取文件通常使用内置的文件句柄和...

    Perl语言编程.pdf

    Perl语言是一种高级的、通用的、脚本语言,它是由Larry Wall在1987年开发的。 Perl语言是一种功能强大、灵活的语言,应用非常广泛,包括文本处理、网络编程、数据库交互、系统管理员等。 Perl语言的主要特点包括: ...

    windows Strawberry Perl 5.32最新版本

    windows Strawberry Perl 5.32最新版本 ,适合调试 perl windows Strawberry Perl 5.32最新版本 ,适合调试 perl windows Strawberry Perl 5.32最新版本 ,适合调试 perl windows Strawberry Perl 5.32最新版本 ...

    Perl-5.18.2

    Perl是一种高级的、通用的、解释型的、动态的编程语言,它的全称是 Practical Extraction and Reporting Language,中文常称为“珍珠”。标题“Perl-5.18.2”指的是Perl语言的一个特定版本,即5.18.2。这个版本在...

    Perl编程思想 Perl编程思想

    Perl,全称“Practical Extraction and Reporting Language”,最初由Larry Wall设计,旨在处理文本处理、报告生成等任务,后来逐渐发展成为一个功能强大的通用编程语言。 一、Perl的设计哲学 1. 工具箱哲学:Perl...

    ​ActivePerl5.28版本下载、ActivePerl下载

    ​ActivePerl是一个perl脚本解释器。其包含了包括有 Perl for Win32、Perl for ISAPI、PerlScript、Perl Package Manager四套开发工具程序,可以让用户编写出适用于unix,windows,linux系统的CGI程序来。 CGI...

    strawberry-perl-5.10.1.0.msi

    《Perl编程语言与Strawberry Perl 5.10.1.0的深度解析》 Perl,全称为“Practical Extraction ...无论你是初学者还是经验丰富的Perl开发者,strawberry-perl-5.10.1.0.msi都是你在Windows上进行Perl编程的理想选择。

    perl 4 详细课程

    用于文本文件的处理,功能强大。...它是术语,而不仅仅是简写,Perl 的创造者,Larry Wall 提出第一个,但很快又扩 展到第二个。那就是为什么“Perl”没有所有字母都大写。没必要争论那一个正确,Larry 两个都认可。

    Strawberry_perl5.10.1

    Strawberry Perl是一种在Windows平台上使用的Perl解释器,它提供了完整的Perl环境,包括所有核心模块和许多常用的CPAN(Comprehensive Perl Archive Network)模块。在IT领域,Perl是一种功能强大的脚本语言,常用于...

Global site tag (gtag.js) - Google Analytics