Perl 教程
Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 "实用报表提取语言"。
Perl 是高级、通用、直译式、动态的程序语言。
Perl 最初的设计者为拉里·沃尔(Larry Wall),于1987年12月18日发表。
Perl 借用了C、sed、awk、shell脚本以及很多其他编程语言的特性。
Perl 最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。
谁适合阅读本教程?
本教程适合想从零开始学习 Perl 编程语言的开发人员。当然本教程也会对一些模块进行深入,让你更好的了解 Perl 的应用。
学习本教程前你需要了解
在继续本教程之前,你应该了解一些基本的计算机编程术语。如果你学习过PHP,ASP等其他编程语言,将有助于你更快的了解 Perl 编程。
第一个 Perl 程序
对于大多数程序语言,第一个入门编程代码便是"Hello World!",以下代码为使用 Perl 输出"Hello World!":
实例
#!/usr/bin/perl
print "Hello, World!\n";
========
Perl:执行最常见的编程任务(1)
http://developer.51cto.com/art/201009/224638.htm文章将介绍Perl的基础知识,一旦您掌握了Perl的相关知识,使用起来就会非常简单。在本文中,我们将首先介绍如何使用Perl执行最常见的编程任务。
Perl是一种非常简单、应用广泛且反响很好的脚本语言。它可用于各种任务(例如,您可以使用它创建DOS批处理文件或C外壳脚本的等效文件),但在网络开发环境中,它用于开发CGI脚本。
由于Perl是一种脚本语言,所以使用它的一个好处就是可以分发程序的源代码。这就为您提供了学习Perl的机会,您也可以下载和修改数千个Perl脚本,以供自己使用。Perl的缺点之一就是,多数的免费代码都难以理解。这使Perl自身成了一种神秘的语言类型!
本文假定您已经知道如何编程(如果您了解C语言,这对您将非常简单)。一旦掌握了有关Perl的基础知识,使用起来就会非常简单。在本文中,我们将首先介绍如何使用Perl执行最常见的编程任务。阅读本文后,您将可以相对轻松地编写自己的Perl脚本,还可以轻松地读取其他人编写的含义模糊的脚本,这将是一个好的开始。
要启用Perl,您需要有Perl解释程序。在任何装有UNIX的计算机上,99.99%的都已安装了Perl解释程序。在装有Windows或Mac计算机上,您需要下载最新的语言版本并将其安装到计算机上。您可从网上轻松下载Perl,并且是免费的。
接下来,请确保查看Perl附带的DOCS目录,其中会有类似用户手册的资料。如果您已加载了Perl,请确保已正确设置了路径以包含Perl的可执行文件。然后,打开文本编辑器并创建一个文本文件。在文件中,输入以下行:
print "Hello World!n";
将文件命名为“test1.pl”。在命令提示符下键入:
perl test1.plPerl
将运行并执行文本文件中的代码。您应该会看到词语“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';
========
Perl格式 - 书写报表
http://www.yiibai.com/perl/perl_format.htmlPerl格式书写报告编程教程,例子教程,参考手册和代码 - 如前所述Perl代表着实际提取和报告语言,我们将讨论如何使用Perl来编写报告。
如前所述Perl代表着实际提取和报告语言,我们将讨论如何使用Perl来编写报告。
Perl使用写作模板,所谓的“格式”输出报告。要使用格式的Perl特性,你必须:
定义格式
传递数据将被显示在格式中
调用格式
定义格式
以下是语法来定义一个Perl的格式
format FormatName =
fieldline
value_one, value_two, value_three
fieldline
value_one, value_two
.
FormatName表示的格式的名称。Fieldline是应该被格式化的具体数据。线条表示值,将被输入到的磁力线,与一个句点结束的格式。
Fieldline可以包含任何文本或fieldholders。Fieldholders保持空间的数据将置于在稍后的日期。fieldholder有一个格式:
@<<<<
fieldholder是左对齐,用5空格空间。知道有多少在该字段的空格,您必须自行计算@符号和<的大小。其它字段中持有包括:
@>>>> right-justified
@|||| centered
@####.## numeric field holder
@* multiline field holder
一个例子的格式是:
format EMPLOYEE =
===================================
@<<<<<<<<<<<<<<<<<<<<<< @<<
$name $age
@#####.##
$salary
===================================
.
在这个例子中$的名字将被写为左对齐在22个字符的空格和年龄后,在两个空格空间将被写入。
调用格式写入数据
为了调用此格式的声明,我们将使用写关键字:
write EMPLOYEE; #send to the output
问题是,格式的名称通常是一个打开的文件句柄的名字,并写语句将输出发送到这个文件句柄。我们要发送的数据到stdout,我们必须联合起来,并在输出文件句柄的EMPLOYEE。首先,我们必须确保,STDOUT是我们的选择的文件句柄,使用select()函数。
select(STDOUT);
然后,我们将通过设置新的格式名称STDOUT与STDOUT关联EMPLOYEE,使用特殊的变量$〜。
$~ = "EMPLOYEE";
我们现在做的一个write()时,数据将发送给STDOUT。请记住:如果你没有STDOUT设置为默认的文件句柄,你可以恢复到原来的文件句柄分配的返回值,选择一个标量值,使用选择这个标量变量的特殊变量后,被指定的格式命名,名称相关联STDOUT。
上面的例子会产生一个报告按以下格式:
Kirsten 12
Mohammad 35
Suhi 15
Namrat 10
定义报表表头
一切都看起来很好。但是,如果你想在报告中添加一个头。这头将被打印在每个页面的顶部。它也非常简单的做到这一点。除了自定义一个模板,你必须定义一个报头,它具有相同的名称,但附加_TOP关键字如下:
format EMPLOYEE_TOP =
------------------------
Name Age
------------------------
.
# by www.yiibai.com
现在,您的报告将看起来像:
------------------------
Name Age
------------------------
Kirsten 12
Mohammad 35
Suhi 15
Namrat 10
在页面上定义一个分页的行数
如果您的报告采用超过一页怎么办?你有一个解决方案。使用$%报头如下
format EMPLOYEE_TOP =
------------------------
Name Age Page @<
------------------------ $%
.
现在,您的输出将类似于:
------------------------
Name Age Page 1
------------------------
Kirsten 12
Mohammad 35
Suhi 15
Namrat 10
您可以设置每页的行数默认情况下使用特殊的变量$=($ FORMAT_LINES_PER_PAGE)$=60
定义报表页脚
剩下最后要做一件事是页脚,与报头非常相似,你可以定义一个页脚,它会被写入后的每一页。在这里,你会使用_BOTTOM关键字,而不是_TOP。
format EMPLOYEE_BOTTOM =
End of Page @<
$%
. #by www.yiibai.com
这会给你下面的结果:
------------------------
Name Age Page 1
------------------------
Kirsten 12
Mohammad 35
Suhi 15
Namrat 10
End of Page 1
对于一个完整的一套相关的格式化的变量,请参考 Perl特殊变量部分。
========