1、下载第一部分Perl 基础第 1学时 Perl 入门第 2学时 Perl 的基本构件:数字和字符串第 3学时 控制程序流第 4学时 基本构件的堆栈:列表与数组第 5学时 进行文件操作第 6学时 模式匹配第 7学时 哈希结构第 8学时 函数下载第 1学时 P e r l入门P e r l是一种通用编程语言。凡是其他编程语言能够使用的地方,都有它的用武之地。在各行各业中,它已经被用于你能够想像到的各种各样的任务的处理。它已经用于股票市场、产品制造、产品设计、客户支持、质量控制、千年虫测试、系统编程、工资处理和库存管理等各个领域,当然还有 We b。P e r l的用途之所以如此广泛,原因是 P e
2、 r l被称为是一种“胶水语言” 。所谓胶水语言,也就是说它是可以用来将许多元素连接在一起的语言。你可能不想用 P e r l来编写一个文字处理程序(尽管可以编写这样的程序) ,因为现在已经有许多非常出色的文字处理程序了。用 P e r l来编写数据库、电子表格、操作系统或者特性完善的 We b服务程序也不是聪明之举,不过编写这些程序是完全可以做到的。P e r l真正擅长的是将这些程序连接在一起。 P e r l能够利用你的数据库,将它转换成一个具有电子表格特性的文件,并且在你进行文件的处理时,根据需要对数据进行调整。 P e r l也能够利用文字处理文档,将它们转换成 H T M L文档,
3、以便在 We b上显示。由于 P e r l是一种“胶水语言” ,能够将许多元素连接在一起,因此它具有极强的适应性。它至少能够在二十几种操作系统下运行,甚至能够在更多的操作系统下运行。 P e r l的编程样式非常灵活,因此可以用许多不同的方法来做同一件事情。你编写的 P e r l程序看上去可能与我的程序毫无共同之处,但是如果它们运行起来,却没有任何问题。必要的时候, P e r l可以是一种非常严谨的语言,而对于编程新手来说,如果你愿意,它又可以是一种非常随意的语言,这完全可以根据你的需要来定。下面让我们来澄清一些基本概念。这个编程语言的名字是 P e r l。运行你的程序的程序(即解释程
4、序)的名字是 p e r l。对你来说它们之间的差别通常并不十分重要,不过当你试图启动你的程序时,情况就不一样了,那时它的名字总是 p e r l。有时,你会看到 P e r l被写成了 P E R L,这可能是因为 P e r l的名字是 Practical Extraction and Report Language缩略而来的。现在已经没有人再说 P E R L,因为这个名字显得太一本正经了。 P e r l这个名字则比较随便。P e r l的许多特性是从其他语言中借来的。这种借用曾经在早期导致 P e r l成为另一个用语 Pathologically Eclectic Rubbish
5、Lister的缩写。本学时介绍的内容包括: 安装 P e r l。 访问 P e r l的内部文档。 编写你的第一个 P e r l脚本程序。1.1 安装 Perl若要使用 P e r l,首先必须安装 P e r l。 P e r l的安装是非常容易的,并且不会出错。实际上,作为安装步骤的一部分, P e r l应该进行自我测试,以确保它安装成功。安装的操作过程可以有很大的差别,这要根据你运行的操作系统而定。因此,为了使安装操作能够进行下去,首先要确定你运行的是什么操作系统,然后再进行下一步工作。1.1.1 等一等,也许你已经安装了 Perl当你着手在你的系统上安装 P e r l之前,应该
6、检查一下是否已经安装了 P e r l。有些 U N I X的供应商已经为操作系统配备了 P e r l。 Windows NT也将 P e r l作为 Windows NT的资源工具包(Resource Kit)的组成部分提供给客户。若要查看你的操作系统上是否已经安装了 P e r l,你需要获得一个命令提示。在 U N I X系统下,只需要登录到该系统中。如果你拥有一个图形操作环境,需要打开终端窗口。当已经登录或者打开终端窗口后,你会看到下面这个提示符:$这个提示符也可能是 %,也可能是 b a s h %,无论什么提示符,它都称为 s h e l l提示符或命令提示符。在本书的头几个学时
7、中,你将需要使用这个提示符与 P e r l进行交互操作。若要了解你的操作系统上是否已经安装了 P e r l,请键入下面这行命令(不要键入 $提示符) :$ perl -v这时系统可能显示一个出错消息,如 command not found(命令没有找到) ,也可能 P e r l作出响应,输出它的版本号。如果 P e r l输出它的版本号,那么就表示它已经安装好了,你就不需要重新进行安装。报告的版本号至少应该是 5,也许是 5 . 0 0 4、 5 . 0 0 5、 5 . 6等,不能小于这些数字。如果 P e r l的版本号是 4 . x,那么你必须安装一个新拷贝。 Perl 4这个版本
8、太老,错误很多,而且不再能够得到维护,本书中只有很少的示例程序能在 Perl 4下运行。在撰写本书时, 5 . 0 0 5是 P e r l的当前版本, 5 . 6在 1 9 9 9年底推出。如果你拥有一台运行 Wi n d o w s操作系统的计算机,要想查看是否安装了 P e r l,必须显示图1 - 1所示的 M S - D O S提示符。4使用 第一部分 Perl 基础 下载图 1-1 可以在这个 D O S提示符下查看 P e r l的版本在这个提示符下,键入下面这个命令(不要重复键入提示符) :C: perl -v如果 P e r l已经安装,它就会显示版本号。正如上面的警告中所说
9、的那样,它的版本号至少必须是 5。如果 D O S回答说 Bad command or file name(命令或文件名不正确) ,那么你就应该安装 P e r l。在 M a c i n t o s h计算机上,你可以像图 1 - 2所示的那样,运行 File Find命令( C o m m a m d - f) ,在 F i n d的命令框中键入 M a c P e r l ,来查看是否已经安装了 P e r l。如果找到了该应用程序,那么将它打开,观察 A p p l e菜单下面的“ About MacPerl”选项。你至少应该拥有 Version 5.2.0Patchlevel 5.0
10、04这个版本号,否则就应该安装 M a c P e r l的新版本。1.1.2 在 Windows 95/98/NT上安装 Perl若要在 Wi n d o w s下安装 P e r l,请记住,你可以像许多其他情况中那样,既可以使用捷径,也可以使用比较笨的办法。如果你对开发环境中需要的 C编译器和各种工具(比如 M a k e f i l e、s h e l l等)非常熟悉,那么可以从头开始安装你自己的 P e r l。可以随意查看、修改和改变 P e r l解释程序的源代码,使之适合你的需要。详细情况请参见第 1 6学时( P e r l程序的开发界)的内容。想要在 Wi n d o w
11、s下从头安装 P e r l并不容易,对于大多数人来说,这样做并不值得。安装 P e r l时使用的捷径确实是非常容易的。 ActiveState To o l公司提供了一个自行安装 P e r l的工具,安装工作就像安装其他任何 Wi n d o w s应用程序一样,如图 1 - 3所示。这个 P e r l是在ActiveState Community License( A c t i v e S t a t e团体许可证)下提供的,你应该阅读该许可证的有关说明。该公司的 U R L是 h t t p : / / w w w. A c t i v e S t a t e . c o m。这
12、个 P e r l与你自己建立的 P e r l是完全相同的东西。 A c t i v e S t a t e公司只是为你做了最困难的那部分工作,并且用有关安装程序将它包装了起来。如果你需要的话, A c t i v e S t a t e公司还为P e r l提供了商业上的支持,并且提供了一些附加产品,如调试程序和其他开发工具及文件库。本书的光盘上包含了 A c t i v e S t a t e公司的 P e r l产品的拷贝,你可以直接使用这个光盘来安装 P e r l,也可以通过 A c t i v e S t a t e公司的 We b站点来获取最新版本的 P e r l。第 1学时
13、 Perl 入门 使用 5下载图 1-2 查看 M a c i n t o s h计算机上的 P e r l图 1-3 用 A c t i v e S t a t e提供的工具在 Wi n d o w s下安装 P e r l1.1.3 在 UNIX上安装 Perl若要在 U N I X上安装 P e r l,需要具备两个条件。首先,需要一个 P e r l的源模块包的拷贝。你始终都可以从 h t t p : / / w w w. p e r l . c o m的 D o w n l o a d s区域下载它的最新版本。可以从那里找到多个版本,不过你需要的版本总是带有“ S t a b l e
14、”或“ P r o d u c t i o n”标号。还需要一个 ANSI C编译器。如果不知道这个编译器的作用,也不必担心。 P e r l的配置程序能够选定一个,如果没有这个编译器,你可以安装一个预安装版本,这在本书的结尾处将要介绍。如果你的 U N I X配有一个用于安装预安装软件包的系统,你就能够安装一个预安装的 P e r l版本。 L i n u x、 S o l a r i s、 A I X和其他 U N I X系统均配有已经捆绑的预安装 P e r l版本,它们的安装非常容易。请查看有关资料,以了解何处能够得到这些软件包。当你拥有 P e r l的源模块包后(它的文件名类似 S
15、 t a b l e . t a r. g z) ,必须对它进行拆包,然后进行安装。若要进行操作,请输入下面的命令:$ gunzip stable.tar.gz$ tar xf stable.tar这两个命令的运行需要花费一定的时间。如果没有 g u n z i p 解压缩程序,可以从h t t p : / / w w w. g n u . o rg下载一个拷贝。该程序包称为 g z i p。当你完成所有的拆包操作后,就会看到一个提示符,然后键入下面的命令:$ sh Configure这时 C o n f i g u r e程序就开始运行,并且问你一系列的问题。如果大部分问题你不知道如何回答,
16、这没有关系,你只需要按 E n t e r键即可。默认的答案通常是最好的答案。 P e r l几乎能够在任何 U N I X系统上安装而不会出现任何问题。当所有这些操作完成时,键入下面的命令:$ m a k eP e r l的安装需要花费相当长的时间,你可以乘此机会喝点儿咖啡。如果你的系统运行速度比较慢,你可以利用这个时间用午餐。当安装完成时,再键入下面这两个命令:$ make test# make installmake test这个命令用于确保 P e r l的安装百分之百正确并且使之可以准备运行。若要运行make install命令,你必须以一个根用户的身份进行登录(正因为这个原因,所以
17、使用提示符 #,这是根用户的提示符) ,因为它需要将 P e r l安装到系统目录中去。当 make install运行正确时,你可以测试 P e r l的安装情况,方法是再次键入下面的命令:$ perl -v如果这个命令运行正确,那么祝贺你安装成功了!在 U N I X下安装 P e r l时使用的源模块拷贝位于本书所附的光盘上。可以直接从这里拷贝这个安装模块包,也可以从 h t t p : / / w w w.perl .com那里获得 P e r l的最新版本。6使用 第一部分 Perl 基础 下载1.1.4 在 Macintosh系统上安装 PerlMacintosh Perl的最新版
18、本称为 M a c P e r l,可以从 C PA N端口目录下获得该版本。你必须访问 h t t p : / / w w w. p e r l . c o m / C PA N / p o r t s / m a c站点,从那里下载安装文件。你应该从该目录下下载MacPerl appl.bin的最新版本,安装时,请使用 S t u ffIt Expander,从下载文件中取出 M a c P e r l安装程序,然后运行该安装程序。当完成安装后,你可能想要为 P e r l文档的阅读者安装一个帮助程序 S h u c k,它是与 M a c P e r l一道安装的。 MacOS 8的用户
19、可以通过 I n t e r n e t控制面板进行安装,方法是打开 A d v a n c e d -File Mapping,给 S h u c k应用程序添加文件扩展名映像 . p o d。这样就可以更加容易地访问该文档了。还可以给 M a c P e r l应用程序建立 . p h、 . p l、 . p l x、 . p m、 . c g i和 . x s(这些都是 P e r l使用的扩展名)等文件映像,请务必将文件类型设置为 T E X T 。MacOS 7的用 户 必 须 使用 I n t e r n e t C o n f i g实用 程 序 来 进行 类 似 的映 射 操
20、作 。在I n t e r n e t C o n f i g中,选定 H e l p e r s,为 p o d添加新的帮助应用程序 s h u c k。另外,还要将前面提到的其他扩展名的帮助文件添加给 M a c P e r l应用程序。本书所附的光盘上包含了一个 M a c P e r l的安装软件包的拷贝。你可以直接用光盘进行安装,也可以访问 h t t p : / / w w w. p e r l . c o m / C PA N / p o r t s / m a c站点,从那里获得一个最新的拷贝。1.2 文档资料这个问题非常重要,因此你应该格外注意。每安装一个 P e r l,你
21、就会得到一份完整的 P e r l语言和解释程序的当前文档资料的拷贝。是的,安装软件包配有用于 P e r l的整套文档资料,你可以免费获得这套资料。 Perl 5.005版包含的资料超过 1 7 0 0页。这些资料包括参考资料、培训资料、 FA Q、历史资料,甚至是关于 P e r l内部情况的说明。可以使用各种不同的方法来访问这些文档资料。在 Wi n d o w s和 U N I X系统上,与 Pe r l一道安装了一个称为 p e r l d o c的实用程序。你可以使用 p e r l d o c程序来搜索这些文档资料,为手册提供格式化输出。若要运行 p e r l d o c程序,
22、你必须处在一个命令提示符下。下面这个例子使用的是 U N I X提示符,不过在 D O S命令提示符下也可以:第 1学时 Perl 入门 使用 7下载手册的各个部分可以分成不同的节,其名字可以是 p e r l f u n c( P e r l函数) 、 p e r l o p( P e r l运算符)和 p e r l f a q( Perl FA Q)等。若要访问 p e r l f u n c手册页,可以输入命令 perldoc perlfunc。手册的所有部分的名字都在 perldoc perl手册页中列出。若要搜索手册,查找某个函数名,可以运行带有 - t f开关的 p e r l
23、d o c实用程序。下面这个例子用于查找 P e r l的 p r i n t函数的手册页:$ perldoc -tf printFA Q是指关于 P e r l的常见问题。这些问题是学习 P e r l的人一再提出的问题。为了节省人们的时间,减少一些麻烦,这些问题集中起来放入称为 FA Q的文件中。若要搜索 FA Q文件,找出某个关键字,你应该使用 - q开关,后随 FA Q标题中可能出现的一个单词。例如,如果想要知道有关 P e r l的支持信息,可以使用下面这个命令:$ perldoc -q support这时,就会显示 FA Q问题的条目“ Who Supports Perl ? Wh
24、o develops it? Why is it free ?”(谁支持 P e r l?谁开发了 P e r l?它为什么是免费的?)1.2.1 某些特殊的文档资料举例当在 U N I X系统上安装 P e r l时,安装人员会看到一个选项提示,让他按传统的“ m a n”格式来安装手册页。如果安装人员选择 y e s(是) ,那么标准 P e r l文档就转换成 m a n格式,并且存放在一个相应的位置。若要访问 P e r l文档,既可以使用 p e r l d o c程序,也可以像通常在 U N I X中那样使用 m a n程序:$ man perl当在 Microsoft Wi n
25、d o w s系统上安装 A c t i v e S t a t e公司的 P e r l产品时,手册页被转换成 H T M L文档格式,并且可以用 We b浏览器进行访问。如果想要阅读手册,请将你的 We b浏览器指向本地目录 C : P e r l h t m l,假如你使用标准安装目录的话;如果你不使用标准目录,则使用你选定的目录。如果是 M a c i n t o s h系统, M a c P e r l配有一个称为 S h u c k的实用程序,它位于 M a c P e r l文件夹中。你可以用它来阅读和搜索 P e r l文档,如图 1 - 4所示。8使用 第一部分 Perl 基
26、础 下载图 1-4 M a c P e r l的 S h u c k文档阅读器1.2.2 如果无法找到文档该怎么办如果无法找到你要的文档,那么可能在两个地方出现了错误。首先是没有查找正确的文档位置。也许 p e r l d o c实用程序安装到的目录不在你的 s h e l l搜索路径上,或者你的搜索路径具有很强的限制性。请反复搜寻 p e r l d o c实用程序,将该目录添加到你的 s h e l l的 PAT H环境变量中。第二个原因是文档被删除了。也许是不小心删除的,也可能是恶意删除的。 P e r l的安装包括了文档的安装。你不能只安装 P e r l而不安装文档。如果文档没有了,
27、那么完全可以认为 P e r l的安装不正确,或者安装以后遭到了破坏。也许你或者系统管理员应该考虑重新安装 P e r l。文档是 P e r l开发环境的不可分割的组成部分,如果没有文档,那么 P e r l的某些部分将无法运行。如果其他方法都失败了,而你仍然无法得到文档的本地拷贝,那么你可以求助于 We b。在 P e r l的主要销售站点( h t t p : / / w w w. p e r l . c o m)上,可以访问一组标准文档。拥有你的 P e r l版本配备的实际文档更好,因为它是根据你的特定 P e r l版本和安装情况裁剪的文档,不过这个在线文档只有在紧急情况下才能使用
28、。1.3 编写你的第一个 Perl程序若要编写你的 P e r l程序,需要一个称为文本编辑器的实用程序。使用文本编辑器,可以将不带任何格式的纯文本输入文件中。 Microsoft Windows 的 N o t e p a d和 DOS 的 E D I T. E X E均属文本编辑器。在 U N I X中, v i、 e m a c s和 p i c o等,都是文本编辑器。你的系统上至少存在其中的一个文本编辑器。在 M a c系统下, M a c P e r l应用程序包含一个基本的文本编辑器,若要打开一个新程序,请在 F i l e菜单下选定 N e w。不应该使用文字处理程序来键入你的
29、P e r l程序。文字处理程序,比如 M i c r o s o f t的 Wo r d、Wo r d p a d和 Wo r d P e r f e c t等,在保存文档时,会将格式化代码嵌入文档之中,即使文档并不包含任何格式。这些格式化代码会使 P e r l感到莫名其妙,你的程序将无法正确运行。如果需要使用文字处理程序,那么务必将你的程序保存为纯文本文件。1.3.1 键入程序打开文本编辑器,正确无误地键入下面这个 P e r l程序:#!这个程序行应该是文件中的第一行。当将该程序键入你的文本编辑器后,将它保存在名字为 h e l l o的文件中。不需要在这个文件名上使用扩展名,但是你加
30、不加扩展名, P e r l都无所谓。有些 Wi n d o w s和 M a c i n t o s h实用程序使用扩展名来指明该文件是什么类型的文件。如果需要或者想要使用扩展名,那么常用的扩展名是 . p l或 . p l x,因此你可以使用 h e l l o . p l这样的文件名。1.3.2 运行程序这时,若要运行该程序,必须进入到一个命令提示符下。在 U N I X中,请打开一个终端窗口,或者登录到系统中。在 Microsoft Wi n d o w s计算机上,显示一个 M S - D O S提示符。还应该第 1学时 Perl 入门 使用 9下载使用你的 s h e l l的 c
31、 d命令,转到你存放 h e l l o程序的目录中。当显示该提示符时,键入下面这个命令。 (下面显示的是 D O S提示符, U N I X提示符稍有不同。 )C:PROGRAMS perl hello如果一切进行正常, P e r l应该显示下面这行消息:Hello, world!如果你键入的这个命令运行正确,那么祝贺你的程序运行成功了!请记住如何运行这个程序,因为这也是你启动本书其余章节中的程序的方法。 (也可以使用其他一些方法,下面很快就要介绍这些方法。 )如果该命令不能运行,请进行下列检查: 如果看到出错消息 Bad command or file name或者 perl : com
32、mand not found,那么表示p e r l程序不在你的执行路径上。必须确定 p e r l程序究竟安装在什么地方,并将该目录添加给你的 s h e l l中的 PAT H变量。 如果看到出错消息 C a n t open perl script hello : A file or directory does not exist(无法打开 P e r l脚本 h e l l o:文件或目录不存在) ,那么你可能没有进入早些时候保存 h e l l o文件所在的这个目录,也许你将该文件保存到另一个目录中了。 如果看到 syntax error这样的错误,那么 P e r l能够正常启动
33、运行,但是无法确定 h e l l o文件中究竟有什么。也许键入的文件内容有错误,也可能使用了一个文字处理程序,它将格式应用到保存的文件中了。可以使用 U N I X的 c a t命令,或者 D O S的 t y p e命令,来核定文件中的内容。如果键入的内容有误,你应该对所有内容进行检查,引号和所有标点符号都很重要。如果使用 M a c P e r l,只需要从 S c r i p t菜单中选定 R u n “ h e l l o ” ,运行你的第一个 p e r l程序。如果没有使用 M a c P e r l的内置编辑器来编写你的程序,那么请从 F i l e菜单中选定 O p e n命
34、令,打开M a c P e r l中你的程序,然后选定 R u n。1.3.3 程序正确将会发生什么情况当键入命令 perl hello时,你的计算机上一个名叫 p e r l的程序就启动运行。该程序称为 p e r l解释程序。这个 perl 解释程序是 P e r l的核心和灵魂。它的作用是取出对它赋予的文件(这里是文件 h e l l o ),找出里面的程序,并运行该程序。所谓“运行该程序” ,是指首先要检查构成 P e r l程序的语句、函数、运算符、数学算法和其他所有元素,以确保句法正确,然后每次运行一个语句。当 perl 解释程序完成了从磁盘中读取你的程序的全部操作后,它即开始运行
35、该程序,并且继续运行,直到整个程序运行完成。当它完成程序的运行时, perl 解释程序退出,将控制权重新交给你的操作系统。现在让我们来看一看 h e l l o程序是如何“运行”的。1.3.4 Perl程序的具体运行过程H e l l o程序的第一行是:10使用 第一部分 Perl 基础 下载# ! / u s r / b i n / p e rl对于 P e r l来说,代码行上的 # 符号后面的一切均被视为注释行。注释是指 P e r l将对它加以忽略的一些东西。在某些情况下,程序的第一行上的 #!是不同的。它后面的路径名/ u s r / b i n / p e r l是到达 perl
36、解释程序的路径。如果 U N I X程序有一行是以 #!开头,后随一个解释程序的路径,那么 U N I X就知道这是个程序,并且可以按照名字来运行。关于如何运行程序的说明,请参见本学时结尾处的“专家答疑” 。有些能够运行 P e r l程序的 We b服务器,比如 A p a c h e,也对 #!这个程序行非常注意,并且能够在没有 p e r l命令的显式说明下运行该程序。现在我们正好是将 #!视为一个注释行。下一个程序行是:print “Hello,World!n“;这里包含了许多内容。这一行构成了一个 P e r l语句,它为 P e r l标明了一项需要执行的操作。首先,这一行包含一个
37、函数,称为 p r i n t。这个 p r i n t函数取出它后面的所有内容,并默认显示在屏幕上。 p r i n t函数的输出结果,是直到分号(;)前的那部分内容。P e r l中的分号是个语句分隔符。你应该在 P e r l程序中的各个语句之间放一个分隔符,以便显示一个语句的结束和另一个语句的开始。在这个例子中, p r i n t函数显示了短语 H e l l o , Wo r l d !。程序行结尾处的 n告诉 P e r l将一个新的空行插入到它输出的短语的后面。短语前后的引号和 n告诉 P e r l,这是个文字串,不是另一个函数。下一个学时将要非常详细地介绍字符串的内容。1.
38、3.5 必须知道的一些情况P e r l被人们称为是一种自由格式的编程语言。这意味着 P e r l语句在编写的时候并不是非常严格。可以将空格、制表符,甚至回车符(它们称为白空间)插入 P e r l语句中的任何位置,这实际上都没有关系。但是有些位置不能随意插入白空间,这些位置是应该加以限制的位置。例如,不能在函数名的中间插入空格, pr int是个无效函数。另外不能将空格插入数字中,比如 25 61这个数字是不行的。像“ Hello Wo r l d !”这样的文字串中的白空间当然可以显示为白空间。几乎任何其他地方它都是有效的。你可以编写类似下面这样的 P e r l程序示例:这个程序在功能
39、上与原先的程序是相同的。 P e r l语言的这种自由格式特性使你的 P e r l程序可以具有非常丰富的“样式” 。在程序的格式上可以有很大的随意性。不过请记住,总有一天其他用户会查看你的程序的,因此你不能让他们看不懂。本书中的程序所用的样式是相当保守的。有时为了清楚起见,或者为了节省空间,语句被分成了若干行,因为 Pe r l的语句可能非常长。 P e r l的文档资料甚至提供了一个建议性的样式指南,可以浏览该文档,以便了解有关的建议。可以搜索名字为 p e r l s t y l e的文档。第 1学时 Perl 入门 使用 11下载P e r l程序中的样式有时可能非常特殊。有的 P e
40、 r l程序可以写成诗歌,甚至俳句,这些都是有效的。有些令人难忘的 Pe r l程序看上去就像是图画,不过它们仍然能够做一些有用的工作。 Perl Journal (网址是 h t t p : / / w w w.tPj . c o m)每年都要举行一次编写样式特殊的 Pe r l程序的比赛,比赛的名字是 Obfuscated Perl Contest。你不应该采取这些程序项目的样式。1.4 课时小结在本学时中,我们学习了一些关于 P e r l和 P e r l是如何运行的知识。随着你阅读本书其他章节的内容,你会不断增加对它的了解。还学习了如何在你的系统上安装 P e r l,并且如何来检验
41、它是否运行正确以及它的所有文档资料是否已经安装到位。最后,键入并且运行了你的第一个 P e r l程序。接着分析了这个程序,并且进一步学习了 P e r l如何运行的一些知识。1.5 课外作业1.5.1 专家答疑问题: P e r l运行的那些东西是称为 P e r l脚本还是 P e r l程序?解答: 名字实际上并不重要。传统上,程序被编译成机器语言并且按照机器语言的形式来存放,机器语言是可以多次运行的。而脚本可以被放入一个外部程序中,每当脚本运行时,外部程序就将脚本转换成一些操作。 P e r l的发明人 Larry Wa l l曾经说过: “脚本是你为操作人员提供的东西,而程序则是你提
42、供给用户的东西。 ”你可以随意称呼它们。在本书的其余章节中,将它们称为 P e r l程序,如果你学习成绩很好的话,那么你就可以称为一名 P e r l程序员。问题: 是否必须键入本书中的一些程序清单?有些程序清单非常长。解答: 本书中的所有程序清单和程序示例,以及这些程序需要的数据文件等,都在本书所附的光盘上。问题: 在“运行程序”这一节中,讲到在 U N I X下有一种比较简便的方法可以用来运行P e r l程序。究竟如何运行呢?解答: 首先,必须确保程序的 #!行正确无误,同时路径名确实指向一个 p e r l解释程序;/ u s r / b i n / p e r l是它的通常位置,在
43、有些机器上它的位置是 / u s r / l o c a l / b i n / p e r l。接着,必须使用c h m o d命令,使该程序能够执行。如果是 h e l l o程序,那么 U N I X的 s h e l l命令是 chmod 755 hello。这项操作完成后,你可以键入 h e l l o或 . / h e l l o,运行该 P e r l程序。应该说明的是,在 U N I X下,不要将你的程序命名为“ t e s t” 。 U N I X的 s h e l l有一个命令的名字是 t e s t,当错误地运行 t e s t命令时,就会带来很大的麻烦。关于不能使用的其
44、他程序名,请参见你的 s h e l l的文档资料。另外,如果使用光盘上的程序清单,必须修改 #!行,使之与你的系统上的 P e r l位置相一致,否则,你将必须从命令提示符下键入 perl programname运行你的程序。1.5.2 思考题1) Perl是编程语言的名字; p e r l则a. 也是该语言的名字。12使用 第一部分 Perl 基础 下载b. 是解释程序的名字。c. 是一个 D O S命令的名字。2) 在何处总是可以找到 P e r l文档资料的拷贝?a. http:/www. m i c r o s o f t . c o mb. http:/www. p e r l .
45、 c o mc. http:/www. p e r l . n e t3) 在哪个手册页中能够找到 P e r l句法的描述?a. perlsynb. perlopc. perlfaq1.5.3 解答1) 答案是 b。不过, P e r l安装后,它也是 DOS shell中的一个有效的命令。因此 c也是对的。2) 答案是 b。它也可以安装在你的系统上。3) 答案是 a。除非你运行 perldoc perl,否则无法明确知道能否在那里找到该描述。1.5.4 实习 请浏览 FA Q (常见问题 )。即使你不能理解它里面的所有内容,也能够大致了解 FA Q中可以得到哪些类型的信息。如果你喜欢通过浏
46、览器来阅读它的内容,请搜索 h t t p : / / w w w. p e r l . c o m,并在那里阅读它的内容,不过应该仔细阅读才行。第 1学时 Perl 入门 使用 13下载下载第 2学时 P e r l的基本构件:数字和字符串每种编程语言,以及人类的每种语言,都有一个相似的出发点,那就是必须要有谈话的要素。在 P e r l中,数字和字符串就是谈话的基本单位,这些基本单位称为标量。标量是 P e r l的基本谈话单位。本书中的每个学时都要涉及到标量,对标量可以进行增加、减少、查询、测试、集中、清除、分隔、折叠、排序、保存、加载、输出和删除等操作。标量是 P e r l的单个名词
47、,它们可以代表一个单词、一个记录、一个文档、一行文本或者一个字符。P e r l中的标量能够代表直接量数据,它在程序的生命期内是不变的。有些编程语言将这些值称为常量或直接量。直接量数据可以用于表示没有变化的值,比如 pi的值,物体落地的加速度和美国第 1 5届总统的名字等。如果一个 P e r l程序需要这些值,那么在程序的某个位置上可以用一个标量直接量来代表它们。P e r l中还有另一些类型的标量是变化的,它们称为标量变量。变量可以在你对它进行操作时用来存放数据。可以改变变量的内容,因为它们只是作为它们代表的数据的句柄而存在的。变量要被赋予相应的名字,这些名字比较简单,而且很容易记住,它们
48、可以帮助你引用你要操作的数据。本学时还要介绍 P e r l的运算符。运算符是 P e r l语言中的一种动词,运算符取出 P e r l的名词,负责从事你在编写执行特定任务的程序时需要进行的实际操作。在本学时中,将学习下列内容: 直接量数字和字符串。 标量变量。 运算符。2.1 直接量P e r l拥有两种不同类型的标量常量,它们都称为直接量。一种是数字直接量,一种是字符串直接量。2.1.1 数字数字直接量都是一些数字, P e r l可以接受若干种不同的数字写法。表 2 - 1显示的所有例子在 P e r l中都是有效的数字直接量。表 2-1 数字直接量示例数 字 直接量的类型6 整型数1
49、 2 . 5 浮点数1 5 . 0 另一个浮点数0 . 7 3 2 0 5 0 8 也是一个浮点数1 e 1 0 科学记数法6 . 6 7 E - 3 3 科学记数法( e或 E均可以)4 _ 2 9 4 _ 2 9 6 带有下划线而不是逗号的大数字数字可以根据你设想的样子来加以表示。整数是一些连续的数字。至于浮点(十进制)数,可以按照通常的形式使用小数点。科学记数法用一个指数字母 e和一个尾数(对数的十进制部分)来表示。至于大整数,可以在通常使用逗号的地方换上下划线,以便于阅读。当使用数字值的时候, P e r l会删除这些下划线。在数字前面不要使用前导 0,比如 0 1 0。对于 P e r l来说,这个数字代表一个八进制数字,它的基数是 8。 P e r l还允许使用十六进制直接量数字(基数是1 6)和二进制数字(基数是 2) 。关于这些数字的详细信息请参见 p e r l d a t a部分的在线文档。2.1.2 字符串P e r l中的字符串直接量是指原义字符构成的串。它们能够包含你所想要的那么多数据。字符串的长度实际上是没有限制的,不过不能超出计算机中的虚拟内存的容量。字符串也可以包含任何种类的数据,比如简单的 A S C I I文本,最高位为 1的 A