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
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页