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.

使 用 非 ASCII 字 符 集 。 你 必 须 负 责 保 证 你 的 程 序 的 语 意 和 你 选 择 的 国 家 字 符 集 是 一 致 的 。比 如 说 , 如 果 你 正 在 将 16 位 的 编 码 用 于 亚 洲 国 家 字 符 集 , 那 么 你 要 记 住 <strong>Perl</strong> 会 认 为 你的 每 个 字 符 是 两 个 字 节 , 而 不 是 一 个 字 符 。象 我 们 在 第 十 五 章 ,Unicode, 里 面 描 述 的 那 样 , 我 们 最 近 为 <strong>Perl</strong> 增 加 了 Unicode 的 支持 ( 注 : 尽 管 我 们 对 能 支 持 Unicode 感 到 非 常 激 动 , 我 们 的 大 部 分 例 子 仍 然 是 ASCII 编码 的 , 因 为 不 是 每 个 人 都 有 一 个 好 的 Unicode 编 辑 器 。)。 这 个 支 持 是 遍 及 这 门 语 言 全 身的 : 你 可 以 用 Unicode 字 符 做 标 识 符 ( 比 如 说 变 量 名 ), 就 象 在 文 本 串 里 使 用 那 样 。 当 你使 用 Unicode 的 时 候 , 用 不 着 担 心 一 个 字 符 是 由 几 个 位 或 者 几 个 字 节 组 成 的 。<strong>Perl</strong> 只 是假 装 所 有 Unicode 字 符 都 是 相 同 大 小 ( 也 就 是 说 , 尺 寸 为 1), 甚 至 任 意 字 符 在 内 部 都是 由 多 个 字 节 表 示 的 。<strong>Perl</strong> 通 常 在 内 部 把 Unicode 表 示 为 UTF-8 —— 一 种 变 长 编 码 方式 。( 比 如 , 一 个 Unicode 的 笑 脸 字 符 ,U-263A, 在 内 部 会 表 现 为 一 个 三 字 符 序 列 。)如 果 让 我 们 把 与 物 理 元 素 的 类 比 进 行 得 更 深 入 一 些 , 字 符 是 基 本 粒 子 , 就 象 不 同 元 素 里 面 独立 的 原 子 一 样 。 的 确 , 字 符 是 由 位 和 字 节 这 些 更 小 的 粒 子 组 成 的 , 但 是 如 果 你 把 一 个 字 符 分割 开 ( 当 然 是 在 一 个 字 符 加 速 器 里 ), 这 些 独 立 的 位 和 字 节 就 会 完 全 失 去 那 些 赖 以 区 分 字 符的 化 学 属 性 。 就 象 中 子 是 铀 -238 原 子 的 实 现 细 节 一 样 , 字 节 也 是 U-236A 字 符 的 实 现 细节 。所 以 当 我 们 提 及 字 符 时 , 我 们 会 小 心 地 用 “ 字 符 ” 这 个 字 眼 , 而 提 及 字 节 时 , 我 们 会 用 “ 字 节 ”。不 过 我 们 不 是 想 吓 唬 你 —— 你 仍 然 可 以 很 容 易 的 做 那 些 老 风 格 的 字 节 处 理 。 你 要 干 的 事 只 是告 诉 <strong>Perl</strong> 你 依 然 想 把 字 节 当 作 字 符 处 理 。 你 可 以 用 use bytes 用 法 来 实 现 这 个 目 的 ( 参阅 第 三 十 一 章 , 实 用 模 块 )。 不 过 即 使 你 不 这 样 做 ,<strong>Perl</strong> 还 是 能 很 不 错 地 在 你 需 要 的 时 候把 小 字 符 保 存 在 8 个 位 里 面 。所 以 不 要 担 心 这 些 小 的 方 面 。 让 我 们 向 更 大 和 更 好 的 东 西 前 进 。2.2 分 子<strong>Perl</strong> 是 自 由 格 式 语 言 , 不 过 也 不 意 味 着 <strong>Perl</strong> 就 完 全 是 自 由 格 式 。 象 计 算 机 工 作 者 常 说 的那 样 , 自 由 格 式 的 语 言 就 是 说 你 可 以 在 你 喜 欢 的 任 何 地 方 放 空 白 , 制 表 符 和 新 行 等 字 符 ( 除了 不 能 放 的 地 方 以 外 )。有 一 个 显 然 不 能 放 空 白 的 地 方 就 是 在 记 号 里 。 一 个 记 号 就 是 有 独 立 含 义 的 一 个 字 符 序 列 , 非常 象 自 然 语 言 中 的 单 字 。 不 过 和 典 型 的 字 不 一 样 的 地 方 是 记 号 可 能 含 有 除 了 字 符 以 外 的 其 他字 符 —— 只 要 它 们 连 在 一 起 形 成 独 立 的 含 义 。( 从 这 个 意 义 来 看 , 记 号 更 象 分 子 , 因 为 分 子不 一 定 要 由 一 种 特 定 的 原 子 组 成 。) 例 如 , 数 字 和 数 学 操 作 符 都 是 记 号 。 一 个 标 识 符 是 由 字母 或 下 划 线 开 头 的 , 只 包 括 字 母 , 数 字 , 和 下 划 线 。 记 号 里 面 不 能 有 空 白 , 因 为 那 样 会 把 它分 成 两 个 记 号 , 就 象 在 英 文 里 面 空 白 把 单 词 分 成 两 个 单 词 一 样 。( 注 : 聪 明 的 读 者 可 能 会 说49

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

Saved successfully!

Ooh no, something went wrong!