1.简介
Perl 是 Practical Extraction and Report Language 的缩写,可翻译为"实用报表提取语言"。
Perl 是高级、通用、直译式、动态的程序语言。
Perl 最初的设计者为拉里·沃尔(Larry Wall),于1987年12月18日发表。
Perl 借用了C、sed、awk、shell脚本以及很多其他编程语言的特性。
Perl 最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。
1987年Larry Wall发布Perl1.0以来,用户数一直急剧增加,同时越来越多的程序员与软件开发者(商)参与Perl的开发。从最初被当做一种跨平台环境中书写可移植工具的高级语言开始,Perl被广泛地认为是一种工业级的强大工具,可以在任何地方用来完成你的工作。perl的前身是Unix系统管理的一个工具,被用在无数的小任务里。后逐渐发展成为一种功能强大的程序设计语言,用作Web编程、数据库处理、XML处理以及系统管理;在完成这些工作时,同时仍能处理日常细小工作,这是它的设计初衷。Perl特别适合系统管理和Web编程。实际上已经被用在所有Unix(包括Linux)捆绑在一起作为标准部件发布,同时也用于Microsoft Windows和几乎所有操作系统。Perl的应用非常广泛。
2.Perl语言特点
(1)Perl是由Larry Wall设计的,并由他不断更新和维护的编程语言。
(2)Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。
(3)Perl与脚本语言一样,Perl不需要编译器和链接器来运行代码,你要做的只是写出程序并告诉Perl来运行而已。这意味着Perl对于小的编程问题的快速解决方案和为大型事件创建原型来测试潜在的解决方案是十分理想的。
(4)Perl提供脚本语言(如sed和awk)的所有功能,还具有它们所不具备的很多功能。Perl还支持sed到Perl及awk到Perl的翻译器。
简而言之,Perl像C一样强大,像awk、sed等脚本描述语言一样方便。Perl的解释程序是开放源码的免费软件,使用Perl不必担心费用。Perl能在绝大多数操作系统运行,可以方便地向不同操作系统迁移。
Perl是一种能完成任务的语言。从一开始,Perl就设计成可以把简单工作简单化,同时又不失去处理困难问题能力的语言。它可以很容易操作数字,文本,文件和目录,计算机和网络,特别是程序的语言。这种语言应该很容易运行外部的程序并且扫描这些程序的输出获取感兴趣的东西。而且它还应该很容易能把这些你感兴趣的东西交给其它程序做特殊的处理。当然,这种语言还应该很容易在任何现代的操作系统上可以移植地编译和运行。
3 Perl 缺点
(1)因为Perl的灵活性和"过度"的冗余语法,也因此获得了仅写(write-only)的"美誉",因为Perl程序可以写得很随意(例如,变量不经声明就可以直接使用),但是可能少写一些字母就会得到意想不到的结果(而不报错),许多Perl程序的代码令人难以阅读,实现相同功能的程序代码长度可以相差十倍百倍,这就令程序的维护者(甚至是编写者)难以维护。
(2)同样的,因为Perl这样随意的特点,可能会导致一些Perl程序员遗忘语法,以至于不得不经常查看Perl手册。
(3)建议的解决方法是在程序里使用use strict;以及use warnings;,并统一代码风格,使用库,而不是自己使用"硬编码"。Perl同样可以将代码书写得像Python或Ruby等语言一样优雅。
(4)很多时候,perl.exe进程会占用很多的内存空间,虽然只是一时,但是感觉不好。
4 Ubuntu下Perl环境安装
在Linux系统下、大部分类UNIX系统(包括Mac OS X),perl是随系统安装的,可在命令行终端输入命令 perl -v,查看版本,对于Windows有两种版本可用:Strawberry Perl与ActivePerl。
c
$ perl -v
This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux-gnu-thread-multi
(with 79 registered patches, see perl -V for more detail)
Copyright 1987-2017, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
若没有找到该工具,则可通过命令在线安装:sudo apt-get install perl
安装成功后,Perl 的安装路径为 /usr/local/bin
5.基本语法
Perl借用了C、sed、awk、shell脚本以及很多其他编程语言的特性,语法与这些语言有些类似,也有自己的特点。
Perl程序由声明与语句组成,程序自上而下执行,包含了循环,条件控制,每个语句以分号( ; ) 结束。
Perl语言没有严格的格式规范,你可以根据自己喜欢的风格来缩进。
Perl语言分为交互式编程和脚本式编程两种方式。
5.1 交互式编程
输出hello,world示例:
perl
$ perl -e 'print "hello\n"'
5.2 脚本式编程
perl
$ vim 1.pl #创建文件,一般以.pl作为后缀
$ chmod +x 1.pl #添加执行权限,perl语言不需要编译,但需要执行权限
运行效果:
perl
$ ./1.pl
hello,world
欢迎使用perl语言!
5.3 注释
Perl语言中支持单行注册和块注释,单行注释使用"#",如下所示:
perl
#这是一条注释
Perl多行注释,最常用的方法是使用 POD(Plain Old Documentations) 来进行多行注释。方法如下:
perl
#! /usr/bin/perl
#这是一条注释
print "perl注释示例!\n";
=pod perl注释
perl 语言注释使用示例!
块注释使用示例
=cut
print "perl块注释结束!\n"
执行上述程序,输出结果为:
perl
$ ./1.pl
perl注释示例!
perl块注释结束!
注意:
- =pod、 =cut只能在行首。
- 以=开头,以=cut结尾。
- =后面要紧接一个字符,=cut后面可以不用。