我写教程的习惯是第一篇都叫做概述。要学习 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 的熟悉程度。

你可以使用的工具包括但不限于:

在线资料

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,这个调试器模块可能需要额外安装