13.07.2015 Views

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

现 在 你 已 经 知 道 如 何 运 行 你 自 己 的 <strong>Perl</strong> 程 序 ( 不 要 和 perl 解 释 器 混 淆 ), 让 我 们 回 到 例子 上 来 。1.4 文 件 句 柄除 非 你 在 用 人 工 智 能 来 制 作 唯 我 主 义 哲 学 家 的 模 型 , 否 则 你 的 程 序 肯 定 需 要 和 外 边 的 世 界 进行 通 讯 的 途 径 。 在 计 算 平 均 分 的 例 子 第 3, 4 行 , 你 可 以 看 到 GRADES 这 个 词 , 它 是 <strong>Perl</strong>另 一 个 数 据 : 类 型 文 件 句 柄 的 例 子 。 文 件 句 柄 只 是 你 给 文 件 , 设 备 , 网 络 套 接 字 或 管 道 起 的一 个 名 字 , 这 样 可 以 帮 助 你 分 清 你 正 在 和 那 个 文 件 或 设 备 通 讯 , 同 时 掩 藏 了 如 缓 冲 等 复 杂 性 。( 在 内 部 实 现 中 , 文 件 句 柄 近 似 于 C++ 中 的 流 , 或 者 BASIC 中 的 I/O 通 道 )。文 件 句 柄 能 帮 助 你 容 易 地 从 不 同 的 地 方 接 收 输 入 , 并 输 出 到 不 同 的 地 方 。<strong>Perl</strong> 能 成 为 一 种好 的 连 接 语 言 部 分 也 归 功 于 它 能 很 容 易 地 与 很 多 文 件 和 进 程 通 讯 。 有 很 好 的 符 号 名 字 来 表 示各 种 不 同 的 外 部 对 象 是 好 的 连 接 语 言 的 一 个 要 求 。( 注 : 其 他 一 些 令 <strong>Perl</strong> 成 为 优 秀 连 接 语言 的 方 面 包 括 :8 位 无 关 , 可 嵌 入 , 以 及 你 可 以 通 过 扩 展 模 块 嵌 入 其 他 语 言 。 它 的 一 致 性 ,以 及 它 的 “ 网 络 ” 易 用 性 。 它 与 环 境 相 关 性 。 你 可 以 用 许 多 不 同 的 方 法 调 用 它 ( 正 如 我 们 前 面看 到 的 )。 但 最 重 要 的 是 , 这 门 语 言 本 身 没 有 僵 化 的 结 构 要 求 , 搞 得 你 无 法 让 它 “ 绕 开 ” 你的 问 题 。 我 们 又 回 到 “ 回 字 有 四 种 写 法 ” 的 话 题 上 来 了 。)你 可 以 使 用 open 创 建 并 关 联 一 个 文 件 。open 函 数 需 要 至 少 两 个 参 数 : 文 件 句 柄 和 你 希望 与 文 件 句 柄 关 联 的 文 件 名 。<strong>Perl</strong> 也 给 你 一 些 预 定 义 ( 并 且 预 先 打 开 ) 的 文 件 句 柄 。STDIN是 我 们 程 序 的 标 准 输 入 ,STDOUT 是 标 准 输 出 。STDERR 是 一 个 额 外 的 输 出 途 径 , 这 样就 允 许 你 在 将 输 入 转 换 到 你 的 输 出 上 的 时 候 进 行 旁 路 。( 注 : 通 常 这 些 文 件 句 柄 附 着 在 你 的终 端 上 , 这 样 你 就 可 以 向 你 的 程 序 输 入 并 且 观 察 结 果 , 但 是 它 们 也 可 以 附 着 在 文 件 ( 之 类 )上 。 <strong>Perl</strong> 能 给 你 这 些 预 定 义 的 句 柄 是 因 为 你 的 操 作 系 统 已 经 通 过 某 种 方 式 提 供 它 们 了 。 在Unix 里 , 进 程 从 它 们 的 父 进 程 那 里 继 承 标 准 输 入 , 标 准 输 出 和 标 准 错 误 , 通 常 父 进 程 是shell。 shell 的 一 个 职 责 就 是 设 置 这 些 I/O 流 , 好 让 这 些 子 进 程 不 用 担 心 它 们 。)因 为 你 可 以 用 open 函 数 创 建 用 于 不 同 用 途 ( 输 入 , 输 出 , 管 道 ) 的 文 件 句 柄 , 因 此 你 必须 指 定 你 需 要 哪 种 类 型 。 象 在 命 令 行 中 一 样 , 你 只 需 简 单 地 在 文 件 名 中 加 入 特 定 的 字 符 。open(SESAME, "filename")# 从 现 存 文 件 中 读 取open(SESAME, "filename")open(SESAME, ">>filename")# 创 建 文 件 并 写 入# 附 加 在 现 存 文 件 后 面open(SESAME, "| output-pipe-command")# 设 置 一 个 输 出 过 滤 器26

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

Saved successfully!

Ooh no, something went wrong!