perl脚本语言
写在前面的话
脚本语言介绍。在了解Perl之前,我们有必要了解一下脚本语言。
一、什么是perl语言
Perl,是一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。Perl 语言的应用范围很广,除CGI(Common Gateway Interface,译作“通用网关接口”)以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。
Perl是由Larry Wall设计的,并由他不断更新和维护的编程语言。Perl具有高级语言(如C)的强大能力和灵活性。事实上,它的许多特性是从C语言中借用来的。Perl与脚本语言一样,Perl不需要编译器和链接器来运行代码,你要做的只是写出程序并告诉Perl来运行而已。Perl提供脚本语言(如sed和awk)的所有功能,还具有它们所不具备的很多功能。Perl还支持sed到Perl及awk到Perl的翻译器。简而言之,Perl像C一样强大,像awk、sed等脚本描述语言一样方便。二、Perl语言优缺点
2.1 优点
相比C、Pascal这样的"高级"语言而言,Perl语言直接提供泛型变量、动态数组、Hash表等更加便捷的编程元素。Perl具有动态语言的强大灵活的特性,并且还从C/C++、Basic、Pascal等语言中分别借鉴了语法规则,从而提供了许多冗余语法。在统一变量类型和掩盖运算细节方面,Perl做得比其他高级语言(如:Python)更为出色。由于从其他语言大量借鉴了语法,使得从其他编程语言转到Perl语言的程序员可以迅速上手写程序并完成任务,这使得Perl语言是一门容易用的语言。Perl 是可扩展的,我们可以通过CPAN("the Comprehensive Perl Archive Network"全面的 Perl 存档网络)中心仓库找到很多我们需要的模块。Perl 的 mod_perl 的模块允许 Apache web 服务器使用 Perl 解释器。2.2 缺点
过度灵活和冗余。也正是因为Perl的灵活性和"过度"的冗余语法,也因此获得了仅写(write-only)的"美誉",因为Perl程序可以写得很随意(例如,变量不经声明就可以直接使用),但是可能少写一些字母就会得到意想不到的结果(而不报错),许多Perl程序的代码令人难以阅读,实现相同功能的程序代码长度可以相差十倍百倍,这就令程序的维护者(甚至是编写者)难以维护。同样因为Perl这样随意的特点,可能会导致一些Perl程序员遗忘语法,以至于不得不经常查看Perl手册。建议的解决方法是在程序里使用use strict;以及use warnings;,并统一代码风格,使用库,而不是自己使用"硬编码"。Perl同样可以将代码书写得像Python或Ruby等语言一样优雅。很多时候,perl.exe进程会占用很多的内存空间,虽然只是一时,但是感觉不好。三、perl语言的运行
3.1 Perl的运行平台
Perl 语言的运行需要环境。Perl 可以在以下平台下运行:
Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX etc.)Win 9x/NT/2000/WinCEMacintosh (PPC, 68K)Solaris (x86, SPARC)OpenVMSAlpha (7.2 and later)SymbianDebian GNU/kFreeBSDMirOS BSD等等...3.2 查看Perl是否安装
很多系统平台上已经默认安装了 perl,我们可以通过以下命令来查看是否已安装:
$ perl -v3.3 运行Perl
运行Perl(交互式):
$perl -e <perl code> # Unix/LinuxC:>perl -e <perl code> # Windows/DOS运行Perl脚本:
我们可以将 perl 代码放在脚本文件中,通过以下命令来执行文件代码:
$perl script.pl # Unix/LinuxC:>perl script.pl # Windows/DOS在集成开发环境(IDE:Integrated Development Environment)中运行Perl
我们也可以在一些图形用户界面(GUI) 环境上执行 perl 脚本。以下推荐两款常用的 Perl 集成开发环境:
(1)Padre :Padre 是一个为 Perl 语言开发者提供的集成开发环境,提供了语法高亮和代码重构功能。
(2)EPIC : EPIC 是 Perl Eclipse IDE 的插件,如果你熟悉 Eclipse,你可以使用它。
安装步骤:Help-->Eclipse Marketplace-->输入EPIC--> 选择安装并更新即可。
小TIP
在 perl 的路径上也可以加上-w,可以显示程序中出现的一些警告,尽管可能不影响程序的执行结果,方便我们修改我们的程序,例如:
#!/usr/bin/perl -w#!/usr/bin/perl需要参考自己的 perl 路径。
四、Perl的基础语法
Perl借用了C、sed、awk、shell脚本以及很多其他编程语言的特性,语法与这些语言有些类似,也有自己的特点。Perl 程序有声明与语句组成,程序自上而下执行,包含了循环,条件控制,每个语句以分号 ; 结束。Perl 语言没有严格的格式规范,你可以根据自己喜欢的风格来缩进。4.1 交互式编程
可以在命令行中使用-e选项来输入语句来执行代码,实例如下:
$ perl -e 'print "Hello World\n"'输入以上命令,回车后,输出结果为:
Hello World4.2 脚本编程
将代码放到 hello.pl 文件中:
#!/usr/bin/perl # 输出 "Hello, World"print "Hello, world\n";代码中/usr/bin/perl是 perl 解释器的路径。在执行该脚本前要先确保文件有可执行权限,我们可以先将文件权限修改为 0755 :
$ chmod 0755 hello.pl $ ./hello.pl Hello, world # 输出结果print 也可以使用括号来输出字符串,以下两个语句输出相同的结果:
print("Hello, world\n");print "Hello, world\n";4.3 脚本文件
perl 代码可以写在一个文本文件中,以 .pl、.PL 作为后缀。
文件名可以包含数字,符号和字母,但不能包含空格,可以使用下划线(_)来替代空格。
一个简单的Perl 文件名:
run_oob.pl注释
使用注释使你的程序易读,这是好的编程习惯。perl 注释的方法为在语句的开头用字符#,如:
# 这一行是 perl 中的注释perl 也支持多行注释,最常用的方法是使用 POD(Plain Old Documentations) 来进行多行注释。方法如下:
#!/usr/bin/perl # 这是一个单行注释print "Hello, world\n"; =pod 注释这是一个多行注释这是一个多行注释这是一个多行注释这是一个多行注释=cut注意:
=pod、 =cut只能在行首。以=开头,以=cut结尾。=后面要紧接一个字符,=cut后面可以不用。Perl 中的空白
Perl 解释器不会关心有多少个空白。
但是如果空格和分行出现在字符串内,他会原样输出:
#!/usr/bin/perl # 会输出分行print "Hello world\n";以上执行结果为:
Hello world所有类型的空白如:空格,tab ,空行等如果在引号外解释器会忽略它,如果在引号内会原样输出。
五、更多
参考教程1