返回列表 回复 发帖

[分享]Perl是什么?

Perl是什么?
  Perl是一种解释型的高级语言,由 Larry Wall和其他许多人所写,融合了许多语言的特性。它主要是由无所不在的 C语言,其次由 sed、awk,UNIX shell 和至少十数种其他的工具和语言所演化而来。据Larry说,他将其他语言中的精华凝聚在Perl中,而抛弃了那些看起来不够好的。
  Perl对进程、文件和文字有很强的处理能力,操作灵巧方便,已经成为web上主要的脚本语言,绝大部分的CGI是用Perl写的。不但如此,Perl作为一种快捷的语言原形,在让不同的系统一起工作方面也有广泛的应用。许多系统管理员都在用Perl完成各种各样繁多的系统管理。有关快速原型设计、系统工具、软体工具、系统管理、资料库连结、图像程式设计、网路连结,和 WWW程式设计等之类的任务,都特别 适合用 Perl来做。
  Perl是在UNIX上发展起来的,但是现在有适合各种系统的版本。而且Perl是解释型的语言,它在不同的平台间具有很好的移植性。
  其实,Perl不只是一种编程语言,它是Internet文化的一部分,它提供了一种全新的思维方法。

Perl对环境的要求
Most UNIX variants
DOS
Windows
OS/2
VMS
QNX
BeOS
Amiga
  呵呵,还有哪里是空白?

谁对 perl提供支援?由谁负责发展?它为什麽是免费的?
  Perl自由开放的发行方式要归功於发烧前的 Internet的传统文化及其作者 Larry Wall。Perl是由使用者提供支援。现在 Perl的核心、标准程式库、选择性安装的模组,以及您现在正在阅读的使用说明都出自於义务者之手。详情请见 perl原始码发行版中所附的 README档案底部的私人注记。
值得一提的是,核心发展小组(称为 Perl Porters)的成员是一群高度热情奉献的人仕,全心投入发展出比您所能想像、用钱能买得到还要更好的免费软体。您可经由 news://genetics.upenn.edu/perl.porters-gw/ 和 http://www.frii.com/~gnat/perl/porters/summary.htm取得关於新近发展计画 的情报。

  尽管 GNU计画将 Perl囊括在它的发行中,但是没有叫「GNU Perl」这样的东西。 Perl既非自由软体基金会所创,亦非由其负责维护。Perl的发行条款同时也较 GNU软体更来得开放。

  如果您愿意,您可以购买商业性的 Perl支援。但对大多数使用者来说,非正式性的支援通常已相当足够。详情请见「到哪里可买到商业性的 Perl支援」一问的回 答。

Perl难学吗?
  Perl不但容易上手,也容易继续学下去。它看起来和大多数您可能已接触过的语言一样。所以如果您只写过 C 程式、或 awk script、shell script,或甚至只是 Excel的 macro(巨集),您已经在半路了。
大多数的任务只需要 Perl语言的一小部分即可完成。发展 Perl程式的座右铭即是「不只一种方法可以达到」(TMTOWTDI; There's More Than One Way To Do It, 有时读作「堤姆投迪」)。因此,Perl的学习曲线是既平(易学)且长的(如果您要的话,有一大堆够您学的)。

  最後,Perl(通常)算是解译式的语言。也就是说您写了程式後不需经由一道中间的编码过程即可测试;这让您可以很快、很容易地测试及除错。这个方便试验的特性又让学习曲线变得更加平坦。

  有助於修习 Perl 的一些事:UNIX经验、对几乎是任何一种程式语言的经验、了解 regular expressions(正规表示法),以及看得懂旁人写的程式的能力。如果您有什麽想用 Perl来做的事,那麽可能已经有前人做过了,而且实例通常可免费取得。还有别忘了新的 Perl模组。模组在这份 FAQ 的第叁部分有详细的讨论,还有【别忘了您的好朋友】 CPAN,这会在第二部分谈到。

Perl和其他的程式语言比起来如何?例如 Java, Python, REXX, Scheme,或 Tcl?
  Perl在某些地方比较好,某些地方较差。精确地说到底哪些方面好或坏通常视个人偏好而定,所以在新闻讨论组中问这种问题很可能会掀起一场毫无建设性的圣战。

  要比较各语言的异同最好的方法是试着用不同的语言写功能相同的程式。各程式语言都各有属於它们各自的新闻讨论组,您可从中学习(但希望您不是去和人辨论吵架的)。

我可以用 Perl来做【某种差事】吗?
  Perl有足够的弹性和扩充性,从只需要写短短一行的档案处理工作到复杂的系统,几乎没有什麽做不到的。对有些人来说,Perl的是拿来做写 shell程式的理想替代品。其他人则用高阶的 Perl来替代处理许多原先需要用 C或 C++ 一类的低阶语言来达到的程式。哪些差事决定要用 Perl来处理,这一切都得看您(或许还有您的经理...)。

  如果您有一个提供 API的程式库的话,您可用 C或 C++来写一个 Perl 延伸,然後便可透过它将程式库中的任何一部分动态载入您的 Perl主程式中。您也可以 反过来,用 C或 C++来写主程式,然後以即时动态载入的方式插入一些Perl程式码,产生一个威力强大的应用程式。

  话虽如此,对解决某些特定的问题,使用小型、专精,专为特殊用途设计的语言总 是比较方便的。 Perl的设计是尽力地满足各种不同人的需要,因而不特别偏颇任何人。至於特殊功能语言的例子,随便举两个,譬如 prolog 和 matlab 便是。

哪些场合下不适合用 Perl?

  当您的主管禁止的时候 -- 不过请务必考虑把他们换掉 :-)。
说真的,如果您已经有用另一个语言写成的应用程式(而且写得很好)的时候,或者是已经有替某些特定的工作设计的语言(例如:prolog, make),这个时候就不需要用 Perl。

  由於种种因素,Perl大概不太适合拿来做即时内嵌式系统、属於低层级的作业系统发展工作,例如周边设备的 drivers或环境转换码、复杂的多线共用记忆体应用程式,或非常大的应用程式。您会发现 Perl 本身便不是以 Perl写成的。

  刚出炉的 Perl纯码编译器或许可帮忙去除一些上述的限制,但您要了解:Perl在本质上仍是一活性变数语言 (dynamically typed language),而非固性变数 (statically typed)。只要您不将核电厂或脑科手术监视器所用的程式放心地用 Perl来写,您自然就不会闯祸遭殃。这样 Larry晚上也可以睡得安稳些 --股市分析程式不在此限 :-)。

Perl程式应算是 program还是 script?
  都无所谓。
按标准术语来讲,program指已经由编译程序编译好、转为机器码,可多次执 行的程式;而 script则是每次执行时都必须透过一个解译程式来解译。然而,Perl程式严格说来,既非编译 (compiled) ,亦非解译式 (interpreted);因 Perl程式可转译成位元码形式存在(可说是某种 Perl虚拟机器 [virtual machine]),或转译为完全不同的语言,如 C或组合语言。所以光看原始码很难 说它到底是替纯解译器、或是 parse-tree解译器、位元码解译器,还是纯码编译器而写;因此这题很难给它一个确切的答案。
What is Perl?

  Perl is an interpreted high-level programming language developed by Larry Wall. According to Larry, he included in Perl all the cool features found in other languages and left out those features that weren't so cool.

  Perl has become the premier scripting language of the Web, as most CGI programs are written in Perl. However, Perl is widely used as a rapid prototyping language and a "glue" language that makes it possible for different systems to work well together. Perl is popular with system administrators who use it for an infinite number of automation tasks.

  Perl's roots are in UNIX but you will find Perl on a wide range of computing platforms. Because Perl is an interpreted language, Perl programs are highly portable across systems.

  Finally, Perl is more than a programming language. It is a part of the Internet culture. It is a very creative way of thinking about almost anything.

What is Perl?

  Perl is a high-level programming language with an eclectic heritage written by Larry Wall and a cast of thousands. It derives from the ubiquitous C programming language and to a lesser extent from sed, awk, the Unix shell, and at least a dozen other tools and languages. Perl's process, file, and text manipulation facilities make it particularly well-suited for tasks involving quick prototyping, system utilities, software tools, system management tasks, database access, graphical programming, networking, and world wide web programming. These strengths make it especially popular with system administrators and CGI script authors, but mathematicians, geneticists, journalists, and even managers also use Perl. Maybe you should, too.

Perl history in brief, by Larry Wall:

Perl 0 introduced Perl to my officemates.
Perl 1 introduced Perl to the world, and changed /\(...\|...\)/ to
/(...|...)/. \(Dan Faigin still hasn't forgiven me. :-\)
Perl 2 introduced Henry Spencer's regular expression package.
Perl 3 introduced the ability to handle binary data (embedded nulls).
Perl 4 introduced the first Camel book. Really. We mostly just
switched version numbers so the book could refer to 4.000.
Perl 5 introduced everything else, including the ability to
introduce everything else.

转载 灿烂微笑的perl

                     我是一个呼吸着现在的空气而生活在过去的人
               这样的注定孤独,孤独的身处闹市却犹如置身于荒漠
                                     我已习惯了孤独,爱上孤独
                                 他让我看清了自我,还原了自我
                             让我再静静的沉思中得到快乐和满足
                                   再孤独的世界里我一遍又一遍
                                   不厌其烦的改写着自己的过去
                                             延伸到现在与未来
                                       然而那只是泡沫般的美梦
                                 产生的时刻又伴随着破灭的到来
                         在灰飞烟灭的瞬间我看到的是过程的美丽
                                      而不是结果的悲哀。。。
返回列表