13.07.2015 Views

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

LVALUE =~ tr/SEARCHLIST/REPLACEMENTLIST/cdstr/SEARCHLIST/REPLACEMENTLIST/cds对 于 sed 的 爱 好 者 而 言 ,y/// 就 是 tr/// 的 同 义 词 。 这 就 是 为 什 么 你 不 能 调 用 名 为 y 的函 数 , 同 样 也 不 能 调 用 名 为 q 或 m 的 函 数 。 在 所 有 的 其 他 方 面 ,y/// 都 等 效 于 tr///,并 且 我 们 不 会 再 提 及 它 。把 这 个 操 作 符 放 进 关 于 模 式 匹 配 的 章 节 看 起 来 其 实 有 点 不 合 适 , 因 为 它 不 使 用 模 式 。 这 个 操作 符 逐 字 符 地 扫 描 一 个 字 串 , 然 后 把 每 个 在 SEARCHLIST ( 不 是 正 则 表 达 式 ) 里 出 现 的字 符 替 换 成 对 应 的 来 自 REPLACEMENTLIST( 也 不 是 替 换 字 串 ) 的 字 符 。 但 是 它 看 上 去象 m// 和 s///, 你 甚 至 还 可 以 和 它 一 起 使 用 =~ 和 !~ 绑 定 操 作 符 , 因 此 我 们 在 这 里描 述 它 。(qr// 和 split 都 是 模 式 匹 配 操 作 符 , 但 是 它 们 不 能 和 绑 定 操 作 符 一 起 使 用 , 因此 因 此 在 我 们 本 书 的 别 处 描 述 它 们 。 自 己 找 找 看 。)转 换 返 回 替 换 或 者 删 除 了 的 字 符 个 数 。 如 果 没 有 通 过 =~ 或 者 !~ 操 作 符 声 明 的 字 串 , 那么 使 用 $_ 字 串 。SEARCHLIST 和 REPLACEMENTLIST 可 以 用 一 个 划 线 定 义 一 个 顺 序字 符 的 范 围 :$message =~ tr/A-Za-z/N-ZA-Mn-za-m?;# 旋 转 13 加 密请 注 意 想 A-Z 这 样 的 范 围 假 设 你 用 的 是 线 性 字 符 集 , 比 如 ASCII。 但 是 不 同 的 字 符 集 的字 符 排 列 顺 序 是 不 一 样 的 。 一 个 合 理 的 原 则 是 , 只 使 用 起 始 点 都 是 相 同 大 小 写 的 字 母 序 列 ,如 (a-e,A-E), 或 者 数 字 (0-4)。 任 何 其 他 的 范 围 都 有 问 题 。 如 果 觉 得 有 问 题 , 他 们 写 成你 用 的 整 个 字 符 集 :ABCDE。SEARCHLIST 和 REPLACEMENTLIST 都 不 会 象 双 引 号 字 串 那 样 进 行 变 量 代 换 ; 不 过 ,你 可 以 使 用 那 些 映 射 为 特 殊 字 符 的 反 斜 杠 序 列 , 比 如 \n 或 \015。表 5-3 是 可 用 于 tr/// 操 作 符 的 修 饰 词 。 它 们 和 用 于 m//,s///, 或 qr// 上 的 完 全 不同 , 即 使 有 些 看 起 来 有 点 象 。表 5-3。tr/// 修 饰 词修 饰 词含 义/c 与 SEARCHLIST 为 补/d 删 除 找 到 的 但 是 没 有 替 换 的 字 符/s 消 除 重 复 的 字 符 。163

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!