NAME
perl - Practical Extraction and Report Language (实 用 摘 录 和 汇 报 语 言 )
总 览 SYNOPSIS
|
perl |
[ -sTuU ] [ -hv ] [ -V[:configvar] ] |
[ -cw ] [ -d[:debugger] ] [ -D[number/list] ]
[ -pna ] [ -Fpattern ] [ -l[octal] ] [ -0[octal] ]
[ -Idir ] [ -m[-]module ] [ -M[-]’module...’ ]
[ -P ] [ -S ]
[ -x[dir] ]
[ -i[extension] ]
[ -e ’command’ ] [ -- ] [ programfile ] [ argument ]...
如 果 你 是 Perl 新 手
, 还 是 从 perlintro 看
起 吧 , 那 是 为
初 学 者 准 备 的
简 单 介 绍 , 提
供 了 一 些 背 景
知 识 , 帮 助 你
浏 览 Perl 其 余 的 大
量 文 档 为 方 便
阅 读 , Perl 手 册 分
成 了 很 多 章 概
述 Overview
perl Perl 概 述 (本 小 节 )
perlintro Perl 介 绍 (为 新 手 准 备 )
perltoc Perl 目 录 (所 有 内 容 列 表 )教 程
Tutorials
perlreftut Perl 引 用
perldsc Perl 数 据 结 构
perllol Perl 高 级 数 据 结 构
perlrequick Perl 正 则 表 达 式 快 速 入 门
perlretut Perl 正 则 表 达 式
perlboot Perl OO 面 向 对 象 入 门
perltoot Perl OO 面 向 对 象 教 程 (第 一 部 分 )
perltooc Perl OO 面 向 对 象 教 程 (第 二 部 分 )
perlbot Perl OO 面 向 对 象 窍 门 和 例 子
perlstyle Perl 程 序 风 格
perlcheat Perl 投 机 取 巧
perltrap Perl 大 意 者 的 陷 阱
perldebtut Perl 调 试
perlfaq Perl 常 见 问 题
perlfaq1 有 关 Perl 的 一 般 问 题
perlfaq2 获 取 /学 习 Perl
perlfaq3 编 程 工 具
perlfaq4 数 据 操 纵
perlfaq5 文 件 与 文 件 格 式
perlfaq6 正 则 表 达 式
perlfaq7 Perl 语 言 本 身 的 问 题
perlfaq8 与 操 作 系 统 交 互
perlfaq9 网 络参 考 手 册
Reference Manual
perlsyn Perl 语 法
perldata Perl 数 据 结 构
perlop Perl 操 作 符 及 优 先 级
perlsub Perl 定 义 函 数
perlfunc Perl 内 置 函 数
perlopentut Perl open() 教 程
perlpacktut Perl pack() 和 unpack() 教 程
perlpod Perl POD 文 档
perlpodspec Perl POD 文 档 格 式 规 约
perlrun Perl 执 行 选 项
perldiag Perl 诊 断 信 息
perllexwarn Perl 警 告 控 制 警 告
perldebug Perl 调 试
perlvar Perl 预 定 义 变 量
perlre Perl 正 则 表 达 式 其 余 的 部 分
perlreref Perl 正 则 表 达 式 快 速 索 引
perlref Perl 参 考 其 余 的 部 分
perlform Perl 格 式
perlobj Perl 对 象
perltie Perl 用 简 单 变 量 隐 藏 对 象
perldbmfilter Perl DBM 层
perlipc Perl 进 程 间 通 信
perlfork Perl fork() 相 关 信 息
perlnumber Perl 数 字 的 语 义
perlthrtut Perl 线 程
perlothrtut 旧 版 Perl 线 程
perlport Perl 移 植 向 导
perllocale Perl 语 言 环 境 支 持
perluniintro Perl Unicode 介 绍
perlunicode Perl Unicode 支 持
perlebcdic 在 EBCDIC 平 台 上 运 行 Perl
perlsec Perl 安 全 性
perlmod Perl modules: 它 如 何 工 作
perlmodlib Perl modules: 如 何 写 和 用 它 们
perlmodstyle Perl modules: 如 何 写 好 它
perlmodinstall Perl modules: 如 何 从 CPAN 安 装 它 们
perlnewmod Perl modules: 准 备 释 放 出 新 模 块
perlutil Perl 附 带 的 工 具
perlcompile Perl 编 译 套 件 介 绍
perlfilter Perl 源 码 过 滤内 部 以 及
C 接 口 Internals and C Language Interface
perlembed 在 C/C++ 应 用 中 内 置 Perl 的 独 特 方 法
perldebguts Perl 调 试 要 点 和 技 巧
perlxstut Perl XS
perlxs Perl XS 应 用 程 序 编 程 接 口
perlclib 标 准 C 库 的 内 部 实 现
perlguts 为 高 级 开 发 者 准 备 的 Perl 内 部 函 数
perlcall 从 C 转 换 为 Perl 调 用
perlapi Perl API 列 表 (自 动 生 成 )
perlintern Perl 内 部 函 数 (自 动 生 成 )
perliol Perl 以 “层 ”方 式 实 现 IO 用 到 的 C API
perlapio Perl 内 部 IO 抽 象 接 口
perlhack 修 改 Perl杂 项
Miscellaneous
perlbook Perl 书 籍 信 息
perltodo Perl 的 未 来
perldoc 查 看 Pod 格 式 的 Perl 文 档
perlhist Perl 历 史 记 录
perldelta Perl 上 一 版 本 以 来 的 变 动
perl58delta Perl 5.8.0 带 来 的 变 化
perl573delta Perl changes in version 5.7.3
perl572delta Perl changes in version 5.7.2
perl571delta Perl changes in version 5.7.1
perl570delta Perl changes in version 5.7.0
perl561delta Perl changes in version 5.6.1
perl56delta Perl changes in version 5.6
perl5005delta Perl changes in version 5.005
perl5004delta Perl changes in version 5.004
perlartistic Perl Artistic License
perlgpl GNU General Public License语 言 相 关
Language-Specific
perlcn Perl 简 体 中 文 支 持 (原 文 是 EUC-CN 编 码 )
perljp Perl 日 本 语 支 持 (原 文 是 EUC-JP 编 码 )
perlko Perl 朝 鲜 语 支 持 (原 文 是 EUC-KR 编 码 )
perltw Perl 繁 体 中 文 支 持 (原 文 是 Big5 编 码 )平 台 相 关
Platform-Specific
perlaix Perl notes for AIX
perlamiga Perl notes for AmigaOS
perlapollo Perl notes for Apollo DomainOS
perlbeos Perl notes for BeOS
perlbs2000 Perl notes for POSIX-BC BS2000
perlce Perl notes for WinCE
perlcygwin Perl notes for Cygwin
perldgux Perl notes for DG/UX
perldos Perl notes for DOS
perlepoc Perl notes for EPOC
perlfreebsd Perl notes for FreeBSD
perlhpux Perl notes for HP-UX
perlhurd Perl notes for Hurd
perlirix Perl notes for Irix
perlmachten Perl notes for Power MachTen
perlmacos Perl notes for Mac OS (Classic)
perlmacosx Perl notes for Mac OS X
perlmint Perl notes for MiNT
perlmpeix Perl notes for MPE/iX
perlnetware Perl notes for NetWare
perlos2 Perl notes for OS/2
perlos390 Perl notes for OS/390
perlos400 Perl notes for OS/400
perlplan9 Perl notes for Plan 9
perlqnx Perl notes for QNX
perlsolaris Perl notes for Solaris
perltru64 Perl notes for Tru64
perluts Perl notes for UTS
perlvmesa Perl notes for VM/ESA
perlvms Perl notes for VMS
perlvos Perl notes for Stratus VOS
perlwin32 Perl notes for Windows默 认 情 况 下 , 上 面 列 出 的 手 册 页 安 装 在
/usr/local/man/ 目 录 还 有 大 量 有 关 Perl 模 块 的 文 档 。 默 认 的 perl 配 置 会 将 它 们 安 装 到 /usr/local/lib/perl5/man 目 录 , (或 者 Perl 库 目 录 中 的 man 子 目 录 ). 它 们 中 的 一 部 分 是 随 Perl 发 布 的 标 准 文 档 , 另 外 你 还 可 以 从 中 找 到 第 三 方 的 文 档 你 可 以 用 man(1) 程 序 来 查 看 Perl 的 文 档 , 只 要 在 配 置 文 件 中 加 入 合 适 的 路 径 , 或 者 将 路 径 设 置 在 MANPATH 环 境 变 量 中 。 要 找 出 perl 所 有 手 册 页 的 路 径 , 只 要 运 行
perl -V:man.dir 如 果 路 径 有 共 同 点 , 例 如 /usr/local/man/man1 和 /usr/local/man/man3, 你 只 要 将 共 同 点 (/usr/local/man) 加 入 到 man(1) 的 配 置 文 件 中 , 或 是 MANPATH 环 境 变 量 中 。 如 果 它 们 没 有 共 同 点 , 就 必 须 全 部 添 加 如 果 这 样 做 没 有 效 果 , 你 也 可 以 用 附 带 的 perldoc 脚 本 来 查 看 模 块 信 息 。 也 可 以 找 一 个 man 的 替 代 程 序 如 果 你 的 程 序 出 了 问 题 , 又 不 知 道 该 到 哪 里 去 找 帮 助 , 就 先 试 一 试 -w 选 项 。 它 会 精 确 地 报 告 错 误 发 生 在 哪 一 行
描 述 DESCRIPTION
Perl 是 一 种 特 别 为 扫 描 复 杂 文 本 文 件 优 化 过 的 语 言 , 从 中 提 取 有 用 的 信 息 , 然 后 据 此 生 成 结 果 。 它 也 是 系 统 管 理 任 务 中 很 好 用 的 语 言 。 它 的 目 标 是 实 用 (易 用 , 高 效 , 完 整 ) 而 不 是 精 致 (小 , 优 雅 , 功 能 有 限 )
Perl 结 合 了 (在 作 者 看 来 ) C, sed, awk, 还 有 sh 的 优 点 , 熟 悉 它 们 的 人 学 起 Perl 毫 无 困 难 。 (语 言 学 家 还 会 从 中 发 现 一 些 csh, Pascal, 甚 至 BASIC-PLUS 中 的 元 素 。 ) 表 达 式 语 法 与 C 表 达 式 语 法 紧 密 对 应 。 与 大 多 数 Unix 工 具 不 同 , Perl 不 限 制 你 的 数 据 的 大 小 -- 只 要 你 有 足 够 的 内 存 , Perl 可 以 把 你 的 整 个 文 件 当 作 单 一 的 字 符 串 来 享 受 。 递 归 的 深 度 是 无 限 的 。 散 列 (有 时 又 叫 做 “关 联 数 组 ” "associative arrays" ) 会 按 需 生 长 , 以 避 免 性 能 下 降 。 Perl 使 用 精 致 的 模 式 匹 配 技 术 来 保 证 快 速 扫 描 大 量 数 据 。 尽 管 为 扫 描 文 本 而 优 化 , Perl 仍 然 可 以 处 理 二 进 制 数 据 , 也 可 以 像 使 用 散 列 一 样 使 用 dbm 文 件 。 设 置 了 UID 的 Perl 脚 本 要 比 C 程 序 安 全 , 因 为 数 据 流 跟 踪 机 制 可 以 堵 上 很 多 愚 蠢 的 安 全 漏 洞 如 果 你 遇 到 了 一 般 适 于 sed 或 awk 或 sh 处 理 的 问 题 , 但 是 问 题 超 出 了 工 具 的 能 力 , 或 者 需 要 更 快 的 处 理 , 你 又 不 想 用 C 来 写 一 大 堆 倒 塌 的 程 序 , 那 么 使 用 Perl 吧 。 另 外 , 还 有 很 多 将 sed 和 awk 脚 本 转 换 为 Perl 脚 本 的 翻 译 器 但 是 稍 等 , 还 有 更 多 ... 自 1993 年 开 始 (参 见 perlhist), Perl 5 进 行 了 几 乎 完 全 的 重 写 , 提 供 了 以 下 的 功 能 :
|
• 模 块 性 和 可 复 用 性 详 述 在 |
perlmod, perlmodlib, 和 perlmodinstall 中
|
• 可 内 置 可 扩 展 详 述 在 |
perlembed, perlxstut, perlxs, perlcall, perlguts, 和 xsubpp 中
|
• 创 建 功 能 强 大 的 数 据 类 型 |
(同 时 包 括 多 种 DBM 实 现 ) |
详 述 在 perltie 和 AnyDBM_File 中
|
• 函 数 可 重 载 , 自 动 加 载 , 原 型 化 详 述 在 |
perlsub 中
|
• 复 杂 的 数 据 结 构 嵌 套 还 有 匿 名 函 数 详 述 在 |
perlreftut, perlref, perldsc, 和 perllol 中
|
• 面 向 对 象 编 程 详 述 在 |
perlobj, perlboot, perltoot, perltooc, 和 perlbot 中
|
• 支 持 轻 量 级 进 程 |
(线 程 ) |
详 述 在 perlthrtut 和 threads 中
|
• 支 持 |
Unicode, 国 际 化 和 本 地 化 |
详 述 在 perluniintro, perllocale 和 Locale::Maketext 中
|
• 变 量 作 用 域 详 述 在 |
perlsub 中
|
• 正 则 表 达 式 强 化 详 述 在 |
perlre 中 , perlop 中 有 更 多 例 子
|
• 强 化 的 调 试 工 具 和 交 互 的 |
Perl 环 境 , 支 持 集 成 的 编 辑 器 |
详 述 在 perldebtut, perldebug 和 perldebguts 中
|
• |
POSIX 1003.1 兼 容 的 库 详 述 在 POSIX 中 |
Okay, 这 些 已 经 是 绝 对 的 绝 对 够 用 了
可 用 性 AVAILABILITY
Perl 在 大 部 分 操 作 系 统 上 都 可 用 , 包 含 几 乎 所 有 类 Unix 的 平 台 。 参 见 perlport 中 的 "Supported Platforms" 段 来 查 看 平 台 列 表
环 境 ENVIRONMENT
参 见 perlrun
作 者 AUTHOR
Larry Wall <larry [AT] wall.org>, with the help of oodles of other folks. 如 果 你 使 用 Perl 的 成 功 案 例 对 想 在 项 目 中 应 用 Perl 的 人 有 用 , 或 者 如 果 你 只 是 想 想 表 达 你 对 Larry 和 Perl 开 发 者 的 感 激 之 情 , 请 写 信 到 <perl-thanks [AT] perl.org>
文 件 FILES
"@INC" locations of perl libraries
参 见 SEE ALSO
a2p awk 到 perl 翻 译 器 s2p sed 到 perl 翻 译 器 http://www.perl.com/ Perl 官 方 主 页 http://www.cpan.org/ the Comprehensive Perl Archive (Perl 文 件 中 心 ) http://www.perl.org/ Perl Mongers (Perl 用 户 组 )
诊 断 DIAGNOSTICS
"use warnings" 编 译 指 示 (pragma) (还 有 -w 选 项 ) 会 产 生 一 些 有 用 的 诊 断 信 息 参 见 perldiag 来 查 看 所 有 Perl 诊 断 信 息 的 含 义 。 "use diagnostics" 编 译 指 示 会 自 动 将 Perl 简 短 的 警 告 和 错 误 消 息 转 换 为 长 格 式 编 译 错 误 将 给 出 行 号 , 还 有 要 执 行 的 下 一 个 词 或 词 的 类 型 。 (在 用 -e 选 项 传 给 Perl 的 脚 本 中 , 每 个 -e 视 为 一 行 。 ) 设 置 了 UID 的 脚 本 有 额 外 的 约 束 , 会 产 生 格 式 化 的 错 误 信 息 , 类 似 "Insecure dependency"。 参 见 perlsec 我 们 说 过 你 一 定 要 用 -w 选 项 了 吗 ?
BUGS
-w 选 项 不 是 必 要 的
Perl 依 赖 于 你 的 机 器 中 操 作 的 定 义 , 类 似 于 类 型 转 换 , atof(), 还 有 使 用 sprintf() 来 做 浮 点 输 出 等 操 作 如 果 你 的 stdio 在 读 写 一 个 特 殊 流 时 需 要 一 个 seek 或 是 eof, Perl 也 会 需 要 它 们 。 (这 种 情 况 不 会 在 sysread() 和 syswrite() 中 发 生 。 ) 所 有 内 置 数 据 类 型 都 没 有 大 小 限 制 (除 了 内 存 大 小 之 外 ), 但 是 还 是 有 一 些 限 制 : 变 量 名 不 得 长 于 251 个 字 符 。 诊 断 信 息 显 示 的 行 号 以 短 整 型 数 保 存 , 因 此 行 号 最 大 值 是 65535 (更 大 的 行 号 一 般 会 从 头 开 始 ) 可 以 将 错 误 报 告 (一 定 要 包 含 完 整 的 配 置 信 息 , 使 用 perl 源 码 树 中 的 myconfig 程 序 , 或 者 用 "perl -V" 命 令 得 到 ) 寄 给 perlbug [AT] perl.org 。 如 果 你 已 经 成 功 编 译 perl, utils/ 目 录 中 的 perlbug 脚 本 可 以 用 来 邮 寄 错 误 报 告
Perl 真 正 意 义 是 Pathologically Eclectic Rubbish Lister, 但 是 不 要 告 诉 任 何 人 我 说 过 它
注 意 NOTES
Perl 的 信 条 是 "There’s more than one way to do it." 至 于 探 索 有 多 少 种 办 法 , 就 是 读 者 自 己 的 事 了 程 序 员 应 有 的 三 种 美 德 是 Laziness, Impatience, 还 有 Hubris. 原 因 呢 , 请 参 见 骆 驼 书
[中 文 版 维 护 人 ]
bbbush <bbbush [AT] 163.com>
[中 文 版 最 新 更 新 ]
2003.11.29
《 中 国 linux论 坛 man手 册 翻 译 计 划 》 :
http://cmpp.linuxforum.net 跋 本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh