我写教程的习惯是第一篇都叫做概述。要学习 Perl,首先当然要对 Perl 这门语言有一个基本了解。
Perl 最初的设计者叫做 Larry Wall,他参考了 C、sed、awk、shell scripting 等其他程序语言的特性创造了 Perl,起初这个名称来自 Practical Extraction and Report Language 的缩写。
Perl 强大而灵活,同时也十分简单。
本文约定
在开始之前,我将默认你有其他至少一种主流语言基础,例如 C 语言或者 Java 等。
开发坏境
如果你在使用 Mac OS X 系统,你的系统可能已经安装好了 Perl 环境,你可以在 Terminal 中通过 perl -v
查看其版本信息。
如果你使用 Windows 等其他系统,我建议你下载 ActivePerl 工具,它支持 Windows、Mac OS X 、Linux、Solaris、HP-UX、AIX 等多个平台。
编辑器与 IDE
对于初学者,我依然建议你使用没有代码提示的工具进行学习,这将有助于你在更短的时间内提高对 Perl 的熟悉程度。
你可以使用的工具包括但不限于:
-
Sublime Text
-
Notepad++
-
Open Perl IDE (Windows Only)
-
等
在线资料
Perl 官方提供了详尽的文档,我们可以通过 perldoc
命令查询。
# 查看 perldoc 指令的帮助文档
perldoc --help
# 查看函数的帮助文档
perldoc -t -f 函数名
# 查看模块的帮助文档,可以使用::分割目录级别
perldoc 模块名
perldoc CPAN::Nox
如果你需要打印这些文档也很简单,Perl 通过 POD 的形式保存这些文档,我们可以通过将其转换为其他格式来更方便的使用,例如 HTML:
perldoc -u subject | pod2html > somefile.html
当然,学习 Perl 不能不知道还有一个很著名的网站——CPAN,
模块安装
安装模块通常有三种方式:
-
PPM 包管理器,可以在 Windows 中使用。
-
CPAN 模块,可以在 UNIX/Linux 系统使用。
手动安装,当然,这一般是在其他方法都失败的情况下使用。
PPM 安装
要使用 PPM 包管理器,通常需要进入 Command Line 环境,输入 PPM 指令启动,CMD 将显示 PPM>
提示符。
通过 help
可以查询相关帮助信息。
通过 search 模块名
可以搜索模块及其信息。
通过 install 模块名
可以安装模块。
CPAN 安装
对于 UNIX/Linux 用户来说,CPAN 自动安装是个不错的选择,它在 Perl 中已经附带,你可以这样启动它:
perl -MCPAN -e shell
首次运行时,会进行一系列的配置问答,通常我们能使用全部的缺省配置,你可以根据情况做出适当调整。
做好配置后,将进入 CPAN 的 shell 环境中,Terminal 会显示 cpan>
提示符。
使用 h
命令可以查看帮助,使用 m 模块名
可以查看模块信息,使用 install 模块吗
可以自动安装和测试模块,使用 q
可以退出当前环境。
手动安装
对于手动安装,你需要准备 gzip 和 tar (UNIX),或者 WinZip 等,以及 make 或 nmake。如果你需要编译文件,你还需要 C 编译器。
解包文件很简单这里不做说明,解包后,则需要创建 Makefile,通过执行 Makefile.PL 来实现,这个脚本位于解包后的路径下。
接下来,使用 make 生成模块,通过 make test 测试后使用 make install 安装模块。
如果出现权限问题,则需要使用 perl Makefile.PL
命令后添加 RREFIX=path
来解决。安装之后,你可能需要设置 PERL5LIB
环境变量,当然,这与你使用的 Perl 版本以及系统所在平台等因素都有关系。
此外,手动安装模块之前,如果该模块依赖于其他模块,你可能还需要先安装这些模块。
Hello world
是时候来写 Hello world 了:
print 'Hello, world';
很简单,但是怎样执行呢?
-
在 Terminal 中输入
perl -e "print 'Hello, world';"
来执行。 -
将代码保存为
.pl
为扩展名的文件,在 Terminal 中输入perl 完整路径及文件名.pl
来执行,例如perl /var/demo/hw.pl
。
此外,Perl 源文件的第一行,通常会有一句注释语句:
#!/usr/bin/perl
它是用来告知 Perl 程序的位置。一些情况下可以省略。
调试
常见的 Perl 调试器有两种:
-
命令行调试器
perl -d test.pl
-
GUI 调试器 ptkdb,这个调试器模块可能需要额外安装