Perl入门之道:执行最常见的编程任务

开发 后端
文章将介绍Perl的基础知识,一旦您掌握了Perl的相关知识,使用起来就会非常简单。在本文中,我们将首先介绍如何使用Perl执行最常见的编程任务。

Perl是一种非常简单、应用广泛且反响很好的脚本语言。它可用于各种任务(例如,您可以使用它创建DOS批处理文件或C外壳脚本的等效文件),但在网络开发环境中,它用于开发CGI脚本。

51CTO推荐阅读:Perl 6完成处子秀 ***个可用版本正式发布

由于Perl是一种脚本语言,所以使用它的一个好处就是可以分发程序的源代码。这就为您提供了学习Perl的机会,您也可以下载和修改数千个Perl脚本,以供自己使用。Perl的缺点之一就是,多数的免费代码都难以理解。这使Perl自身成了一种神秘的语言类型!

本文假定您已经知道如何编程(如果您了解C语言,这对您将非常简单)。一旦掌握了有关Perl的基础知识,使用起来就会非常简单。在本文中,我们将首先介绍如何使用Perl执行最常见的编程任务。阅读本文后,您将可以相对轻松地编写自己的Perl脚本,还可以轻松地读取其他人编写的含义模糊的脚本,这将是一个好的开始。

要启用Perl,您需要有Perl解释程序。在任何装有UNIX的计算机上,99.99%的都已安装了Perl解释程序。在装有Windows或Mac计算机上,您需要下载***的语言版本并将其安装到计算机上。您可从网上轻松下载Perl,并且是免费的。

接下来,请确保查看Perl附带的DOCS目录,其中会有类似用户手册的资料。如果您已加载了Perl,请确保已正确设置了路径以包含Perl的可执行文件。然后,打开文本编辑器并创建一个文本文件。在文件中,输入以下行:

  1. print "Hello World!n"; 

将文件命名为“test1.pl”。在命令提示符下键入:

  1. perl test1.plPerl 

将运行并执行文本文件中的代码。您应该会看到词语“Hello World!”打印到标准输出中。正如您所看到的,在Perl中创建和运行程序都非常简单。(如果使用的是UNIX,您可以在***行中输入一段注释,如#!/usr/bin/perl,那么以后您就不需要在命令行键入单词“perl”了。)

print命令会将内容打印到标准输出中。符号n是换行符。如果您将测试程序修改成以下形式会更清楚(#表示一段注释):

  1. # Print on two lines   
  2. print "HellonWorld!n"; 

请注意,打印命令知道它应该将“n”解释为换行符而不是文字字符这并不是由于打印命令拥有智能,而是因为使用了双引号(在Perl中实际称为引用)。如果您用单引号代替双引号,例如:

  1. print 'HellonWorld!n'; 

则不会对字符n进行解释,而是用文字代替。

还有反引号字符:`。一对反引号表示引号内的字符应被识别为一个操作系统命令,并且该命令与您输入的命令一并执行。如果您试图将操作系统的命令行操作置于反引号内,则将执行该命令。例如,在Windows NT系统中,您可以使用:

  1. print 'cmd /c dir'; 

#p#

来运行DIR命令,并可以从当前目录中查看文件列表。Perl语言中的变量非常有趣。Perl变量无需声明,用$来指明即可。例如:

  1. $s = "HellonWorldn";  
  2. $t = 'HellonWorldn';  
  3. print $s, "n", $t; 

或:

  1. $i = 5;  
  2. $j = $i + 5;  
  3. print $i, "t", $i + 1, "t",  $j;  # t = tab 

或:

  1. $a = "Hello ";  
  2. $b = "Worldn";  
  3. $c = $a .$b; # note use of . to concat strings   
  4. print $c;  

由于.表示字符串连接,因此可以估计.= 与 C 语言中的“+=”具有相同的含义。所以,你可以写成:

  1. $a = "Hello ";  
  2. $b = "Worldn";  
  3. $a .= $b;print $a; 

还可以创建数组:

  1. @a = ('cat', 'dog', 'eel');  
  2. print @a, "n";  
  3. print $#a, "n";  # The value of the highest index, zero basedprint $a[0], "n";  
  4. print $a[0], $a[1], $a[2], "n"; 

符号$#表示获得数组中的***索引,它等于数组中元素的编号减1。像在C语言中一样,所有数组的索引都是从零开始的。您也可以创建散列:

  1. %h = ('dog', 'bark', 'cat', 'meow', 'eel', 'zap');  
  2. print "The dog says ", $h{'dog'}; 

该散列中,单词'bark'和'dog'相关联,'meow'和'cat'相关联,等等。这个散列还可以表达的更具艺术性:

  1. %h = (  
  2.       dog => 'bark',  
  3.       cat => 'meow',  
  4.       eel => 'zap'  
  5. );  

运算符=>引用左边的字符串,相当于一个逗号。您可以像在C语言中一样创建一个简单的for循环语句:

  1. for ($i = 0; $i < 10; $i++)   
  2. {   
  3.     print $i, "n";   
  4. }  

While语句很简单:

  1. $i = 0;   
  2. while ( $i < 10 ) {   
  3.      print $i, "n"; $i++;   
  4. }  

If语句同样也很简单:

  1. for ($i = 0; $i < 10; $i++)   
  2. {   
  3.        if ($i != 5) {  
  4.            print $i, "n";   
  5.        }   
  6. }  

布尔运算符的作用与C语言中的相同:

  1. && 表示“和”   
  2. || 表示“或”   
  3. ! 表示“非”  

对于数字:

  1. == 表示“等于”   
  2. != 表示“不等于”   
  3. <<=、> 和 >=(与原意相同)  

#p#

其他:

  1. eq   
  2. ne   
  3. lt   
  4. le   
  5. gt   
  6. ge  

如果有一个数组,则您可以使用foreach语句轻松进行循环:

  1. @a = ('dog', 'cat', 'eel');   
  2. foreach $b (@a)   
  3. {   
  4.        print $b, "n";   
  5. }  

Foreach语句可以获取@a数组中的每个元素,并将该元素置于$b中,直到@a循环结束。使用单词sub可以创建一个例行程序。将所有变量传递到例行程序中一个称为_的数组。因此,需要运行以下代码:

  1. show ('cat', 'dog', 'eel');  
  2. sub show  
  3. {  
  4.       for ($i = 0; $i <= $#_; $i++)  
  5.       {  
  6.            print $_[$i], "n";  
  7.       }  

请注意,$#将返回数组的***索引号(元素的编号减1),所以$#_表示参数的编号减1。如果您喜欢这种运算,那么也会爱上Perl语言。您可以使用单词local声明例行程序中的局部变量,例如:

  1. sub xxx{local ($a, $b, $c)...} 

还可以使用&调用某个Perl函数,例如:

  1. &show ('a', 'b', 'c'); 

只有在出现歧义时才需要使用&符号,但也有一些编程人员一直都使用该符号。要从例行程序中返回一个值,需要使用关键词return。 从STDIN中读取数据要从标准输入(stdin)中读取数据,需要使用STDIN来处理。例如:

  1. print "Enter high number:";  
  2. $i = ;  
  3. for ($j = 0; $j <= $i; $j++)  
  4. {   
  5.      print $j, "n";  
  6. }  

只要输入一个整数,该程序就将会正常运行。 每次读取一行数据。您还可以使用getc读取一个字符,例如:

  1. $i = getc(STDIN); 

或使用read语句:

  1. read(STDIN, $i, 1); 

read命令的第三个参数中的1是要读取的输入数据的长度。

读取环境变量

您可以使用PERL定义一个名为ENV的全局散列,它可用来检索环境变量的值。例如:

  1. print $ENV{'PATH'}; 

读取命令行参数

您可以使用PERL定义一个全局数组ARGV,其中包含所有传递给脚本的命令行参数。$#ARGV是传递的自变量的编号减1,$ARGV[0]是***个被传递的自变量,$ARGV[1]是第二个被传递的自变量,依此类推。

作者:Marshall Brain

原文链接:http://computer.bowenwang.com.cn/perl.htm

【编辑推荐】

  1. 常用Perl命令行参数应用分析
  2. Perl多进程及其和多线程的关系解析
  3. Perl函数参数中传递数组和引用的使用
  4. Perl语言中三大概念解析
  5. 专家推荐 Perl函数手册之入门篇

 

责任编辑:王晓东 来源: 博闻网
相关推荐

2010-07-16 17:23:57

Perl面向对象编程

2021-04-04 22:31:56

Python编程模块

2009-11-18 09:52:21

Oracle密码验证

2020-08-17 15:45:33

PDF Mix TooPDFLinux

2017-07-20 21:06:44

PythonExcelSQL

2023-02-03 16:16:34

物联网

2023-10-24 06:59:17

2010-07-21 09:10:02

Perl常见问题

2010-07-26 14:45:17

Perl Hash

2010-07-23 14:12:14

Perl Hash

2019-11-12 16:34:12

网络安全软件技术

2015-07-29 10:46:20

Java错误

2020-12-18 10:04:52

API漏洞应用程序编程接口

2022-08-03 13:47:58

漏洞物联网

2010-07-20 16:13:25

Perl线程

2022-02-22 19:04:01

Perl编程语言

2010-07-20 13:32:25

Perl编程格式

2010-07-20 13:44:02

Perl方法

2009-08-06 09:13:36

Ruby on Rai

2010-07-13 16:20:21

Perl 哈希表
点赞
收藏

51CTO技术栈公众号