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> 分 析 器 在 表 达 式 里 需 要 一 个 项 的 时 候 , 花 括 弧 才 运 做 。 你 也 不要 把 它 和 在 表 达 式 里 的 花 括 弧 混 淆 了 , 比 如 $hash{key}—— 尽 管 与 散 列 的 记 忆 性 关 联( 也 ) 是 有 意 为 之 的 。 同 样 的 注 意 事 项 也 适 用 于 在 字 串 里 的 花 括 弧 。但 是 有 另 外 一 个 注 意 事 项 并 不 适 用 于 方 括 弧 。 因 为 花 括 弧 还 可 以 用 于 几 种 其 他 的 东 西 ( 包 括块 ), 有 时 候 你 可 能 不 得 不 在 语 句 的 开 头 放 上 一 个 + 或 者 一 个 return 来 消 除 这 个 位 置 的花 括 弧 的 歧 义 , 这 样 <strong>Perl</strong> 就 会 意 识 到 这 个 开 花 括 弧 不 是 引 出 一 个 块 。 比 如 , 如 果 你 需 要 一个 函 数 生 成 一 个 新 散 列 然 后 返 回 一 个 指 向 它 的 引 用 , 那 么 你 有 下 列 选 择 :sub hashem { { @_ } } # 不 声 不 响 地 错 误 -- returns @_sub hashem { +{ @_ } } # 对sub hashem { return {@_}}# 对8.2.2.3 匿 名 子 过 程 组 合 器你 可 以 通 过 用 不 带 子 过 程 名 字 的 sub 创 建 一 个 匿 名 子 过 程 :$coderef = sub { print "Boink!\n" };# 现 在 &$coderef 打 印 "Boink!"请 注 意 分 号 的 位 置 , 在 这 里 要 求 用 分 号 是 为 了 终 止 该 表 达 式 。( 在 更 常 见 的 声 明 和 定 义 命 名子 过 程 的 用 法 sub NAME {} 里 面 不 需 要 这 个 分 号 。) 一 个 没 有 名 字 的 sub {} 并 不 象是 个 声 明 而 更 象 一 个 操 作 符 —— 象 do {} 或 eval {} 那 样 —— 只 不 过 在 里 面 的 代 码 并 不是 立 即 执 行 的 。 它 只 是 生 成 一 个 指 向 那 些 代 码 的 引 用 , 在 我 们 的 例 子 里 是 存 储 在 $coderef里 。 不 过 , 不 管 你 执 行 上 面 的 行 多 少 次 ,$coderef 都 仍 然 将 指 向 同 样 的 匿 名 子 过 程 。( 注 :不 过 就 算 只 有 一 个 匿 名 子 过 程 , 也 有 可 能 有 好 几 份 词 法 变 量 的 拷 贝 被 该 子 过 程 使 用 , 具 体 情况 取 决 于 子 过 程 生 成 的 时 候 。 这 些 东 西 在 稍 后 的 “ 闭 合 ”( 闭 包 ) 里 讨 论 )。8.2.3 对 象 构 造 器子 过 程 也 可 以 返 回 引 用 。 这 句 话 听 起 来 有 些 陈 腐 , 但 是 有 时 候 别 人 要 求 你 用 一 个 子 过 程 来 创建 引 用 而 不 是 由 你 自 己 创 建 引 用 。 特 别 是 那 些 叫 构 造 器 的 特 殊 子 过 程 创 建 并 返 回 指 向 对 象 的引 用 。 对 象 只 是 一 种 特 殊 的 引 用 , 它 知 道 自 己 是 和 哪 个 类 关 联 在 一 起 的 , 而 构 造 器 知 道 如 何创 建 那 种 关 联 关 系 。 这 些 构 造 器 是 通 过 使 用 bless 操 作 符 , 将 一 个 普 通 的 引 用 物 转 换 成 一个 对 象 实 现 的 , 所 以 我 们 可 以 认 为 对 象 是 一 个 赐 过 福 的 引 用 。( 译 注 :bless 在 英 文 中 原 意是 “ 赐 福 ”,<strong>Perl</strong> 中 使 用 这 样 的 词 作 为 操 作 符 名 称 , 想 必 和 Larry 先 生 是 学 习 语 言 出 身 , 并且 是 虔 诚 的 教 徒 的 背 景 有 关 系 吧 , 不 过 这 个 词 的 确 非 常 贴 切 的 形 容 了 该 操 作 符 的 作 用 , 所 以 ,213

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

Saved successfully!

Ooh no, something went wrong!