Linux 版 (精华区)
发信人: tcpip (高级草包), 信区: Linux
标 题: Perl的诞生(转寄)
发信站: 哈工大紫丁香 (Wed Apr 26 03:29:32 2000), 转信
发信人: Nullgate (空门大师~Perl传教士), 信区: Perl
标 题: Perl的诞生
发信站: BBS 水木清华站 (Tue Apr 25 16:49:45 2000)
[由O'Reilly的Programming Perl 8.7 History Made Practical翻译 ]
[允许任意非商业转载、修改,无需注明作者、译者,版权属O'Reilly]
Perl的诞生
为了理解Perl为什么像现在这样,你必须了解Perl为什么存在。好,让我们拿起尘
封的历史书……
追溯到1986年,Larry是一个项目的系统管理员。这个项目的目标是能支持发展多
种安全级别的广域网络。他负责管理在西海岸的由三台Vaxen和三台Sun组成的实验设施
,这些机器通过一条加密的1200波特率的串行线路(听起来是不是像石器时代的遗迹?
)连接到东海岸的类似设施。由于Larry的主要任务是提供技术支持(他不是程序员,
只是个系统管理员),他能够利用他的三大优点(懒惰、急躁和傲慢)去开发或增强各
种各样的工具,比如rn,patch和warp。
某天,当Larry刚刚把rn程序肢解开,并将它的碎片放到目录的地板上,老板对他
说:“Larry,我们需要一个能控制和管理所有十二台机器的系统。我们必须在一个月
内完成。立即着手去做!”
于是,从来不逃避工作的Larry开始考虑如何设计一个海岸间的控制管理系统。La
rry不是一个边做边想的人,于是他决定使用B-news系统来察看、维护和管理错误报告
。
Larry开始在这些机器上安装新闻系统,并增加了两条指令:“append”用于附加
新的信息到已经有的文章,“synchronize”用于保正两个海岸的文章数目是相同的。
管理和控制可以用RCS完成,余下的由news和rn完成。这系统很不错。
随后老板要他生成报告。存储在不同文件中的新闻都在主服务器上维护,文件有很
多交叉引用。Larry的第一个想法是“让我们用awk”。但是不幸的是那个年代的awk不
能处理多个文件。Larry不愿一为此编写一个用途单一的工具,于是一种新的语言诞生
了。
这种新的工具最初并不叫Perl。Larry曾经将一些同事和合作者的名字搅在一起(
Dan Faigin,本文作者,Mark Biggar,Larry的妻弟,在最初的设计中帮了大忙)。L
arry的确考虑过字典中所有的三四个字母的单词,不过他都不满意。最初的几个名字之
一是“Gloria”,他的情人(也是妻子)的名字。
他很快意识到这会引起混乱。于是名字变成了“Pearl”,最后变成了现在的“Pe
rl”,一部分是因为Larry看到了一种叫做“Pearl”的图形语言的手册,但最重要的是
因为他懒得不断地敲五个字符。就这样,Perl只用到四个字母。(你仍然可以从Perl的
缩写解释中看到前一种称呼的遗迹:“Practical Extraction and Report Language”
。)
最初的Perl缺少很多现在的特性。你可以找到模式匹配、文件句柄、标量和文本格
式(Format)。不过当时只有很少的函数,没有没有关联数组,只有从rn中偷来的有限的
正则表达式。它的文档只有15页。不过Perl比sed和awk都要快,因此在别的应用程序和
项目中得到了应用。
但是Larry被调到了别的项目。另一个老板对Larry说:“Larry,去支持研究和开
发。”于是Larry一口答应下来。他带上了Perl,很快发现它变成了系统管理的利器。
他借来了Henry Spencer优秀的正则表达式包,把它加入了Perl。随后Larry加入了各种
自己需要的好东西,也加入了一小部分别人需要的东西。随后他在网络上发行了Perl。
众所周知,后来的就是历史。
BTW:最令人兴奋的是,Larry不断地发行新版本的Perl,无论他是在喷气推力实验室、
网络实验室、希捷还是O'Reilly。
翻译水平很差,就像科英作业,大家将就点吧
--
Perl能做什么? 你应该问Perl不能做什么,Perl 能做的事太多了!
Perl不能做什么? 挺难回答的,至少Perl不能端茶送饭。
*(@$@$%$$^%$&%&! 没准Perl能懂这个!
Perl资源: http://166.111.160.5/nullgate/perl/
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.160.216]
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.670毫秒