这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » Perl语言入门教程

共1条 1/1 1 跳转至

Perl语言入门教程

高工
2014-06-12 10:33:02     打赏

Perl语言入门教程

引言

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

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

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

Perl语言入门指南

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

接下来,请确保查看Perl附带的DOCS目录,其中会有类似用户手册的资料。从某种意义上说,读完所有文档,或只是先浏览一下都会很有帮助。最初会觉得很麻烦,但在读完本文后,您将获得更多的认识。

输出字符“Hello World”

如果您已加载了Perl,请确保已正确设置了路径以包含Perl的可执行文件。然后,打开文本编辑器并创建一个文本文件。在文件中,输入以下行:

   print "Hello World!n";

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

   perl test1.pl

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

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

   # Print on two lines 
print "HellonWorld!n";

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

   print 'HellonWorld!n';

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

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

   print `cmd /c dir`;

来运行DIR命令,并可以从当前目录中查看文件列表。

PERL注释
在Windows NT系统中,您不能输入:
print `dir`;因为dir不是一个独立的可执行命令——它是命令解释程序cmd的一部分。有关详细信息,请在DOS提示符后键入cmd /?。

符/用于引用正则表达式。

打印命令会将逗号解释为分隔符。例如:

   print 'hello', "n", 'world!';

句号也起分隔符作用:

   print 'hello'. "n".'world!';

句号实际上是字符串连接分隔符。

还会有用于C语言体系的运算符printf。

Perl变量

Perl语言中的变量非常有趣。Perl变量无需声明,用来指明即可。例如:

   s = "HellonWorldn";
t = 'HellonWorldn';
print s, "n", t;

或:

   i = 5;
j = i + 5;
print i, "t", i + 1, "t", j; # t = tab

或:

   a = "Hello ";
b = "Worldn";
c = a .b; # note use of . to concat strings
print c;

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

   a = "Hello ";
b = "Worldn";
a .= b;
print a;

还可以创建数组:

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

符号#表示获得数组中的最高索引,它等于数组中元素的编号减1。像在C语言中一样,所有数组的索引都是从零开始的。

您也可以创建散列:

   %h = ('dog', 'bark', 'cat', 'meow', 'eel', 'zap');
print "The dog says ", h'dog';

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

   %h = (
dog => 'bark',
cat => 'meow',
eel => 'zap'
);

运算符=>引用左边的字符串,相当于一个逗号。

循环语句和If语句

您可以像在C语言中一样创建一个简单的for循环语句:

   for (i = 0; i  10; i++) 

print i, "n";
Perl注释
即使是单行语句,也必须使用左右大括号,即和。

While语句很简单:

   i = 0; 
while ( i 10 )

print i, "n";
i++;

If语句同样也很简单:

   for (i = 0; i  10; i++) 

if (i != 5)

print i, "n";

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

  • 表示“和”
  • || 表示“或”
  • ! 表示“非”
  • 对于数字:
    • == 表示“等于”
    • != 表示“不等于”
    • 、=、> 和 >=(与原意相同)

  • 其他:
    • eq
    • ne
    • lt
    • le
    • gt
    • ge

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

   @a = ('dog', 'cat', 'eel'); 
foreach b (@a)

print b, "n";

Foreach语句可以获取@a数组中的每个元素,并将该元素置于b中,直到@a循环结束。

Perl函数

使用单词sub可以创建一个例行程序。将所有变量传递到例行程序中一个称为_的数组。因此,需要运行以下代码:

   show ('cat', 'dog', 'eel');

sub show

for (i = 0; i = #_; i++)

print _[i], "n";

请注意,#将返回数组的最高索引号(元素的编号减1),所以#_表示参数的编号减1。如果您喜欢这种运算,那么也会爱上PERL语言。

您可以使用单词local声明例行程序中的局部变量,例如:

   sub xxx

local (a, b, c)
...

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

   show ('a', 'b', 'c');

只有在出现歧义时才需要使用符号,但也有一些编程人员一直都使用该符号。

要从例行程序中返回一个值,需要使用关键词return。

Perl读取

从STDIN中读取数据

要从标准输入(stdin)中读取数据,需要使用STDIN来处理。例如:

print "Enter high number:";
i = ;
for (j = 0; j = i; j++)

print j, "n";

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

   i = getc(STDIN);

或使用read语句:

   read(STDIN, i, 1);

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

读取环境变量

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

   print ENV'PATH';

PERL注释
环境变量的名称必须使用大写字母。

读取命令行参数

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

现在,您应该能够阅读或编写简单的Perl脚本了。如果您乐于阅读整篇文档,会学到更多知识。有关其他信息,请查看下一页上的链接。




关键词: Perl语言    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]