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.

式 的 时 候 可 能 出 现 的 副 作 用 。 并 且 和 本 章 相 关 的 是 , 这 样 的 结 构 也 是 实 现 switch 或 case结 构 最 常 见 最 标 准 的 习 惯 用 法 。?: 操 作 符 的 级 联 使 用 也 可 以 起 到 简 单 的 分 支 作 用 。 这 里 我 们 再 次 使 用 for 的 别 名 功 能 , 把重 复 比 较 变 得 更 清 晰 :for ($user_color_perference) {$value = /red/? 0xff0000:/green//blue/? 0xff0000:? 0x0000ff:0x000000; # 全 不 是 用 黑 色}对 于 最 后 一 种 情 况 , 有 时 候 更 好 的 方 法 是 给 自 己 建 一 个 散 列 数 组 , 然 后 通 过 索 引 快 速 取 出 结果 。 和 我 们 刚 刚 看 到 的 级 联 条 件 不 同 的 是 , 散 列 可 以 扩 展 为 无 限 数 量 的 记 录 , 而 且 查 找 第 一个 比 查 找 最 后 一 个 的 时 间 不 会 差 到 哪 儿 去 , 缺 点 是 只 能 做 精 确 匹 配 , 不 能 做 模 式 匹 配 。 如 果你 有 这 样 的 散 列 数 组 :%color_map = (azure=> 0xF0FFFF,chartreuse => 0x7FFF00,lavendermagentaturquoise=> 0xE6E6FA,=> 0xFF00FF,=> 0x40E0D0,);那 么 精 确 的 字 串 查 找 跑 得 飞 快 :$value = $color_map{ lc $user_color_preference } || 0x000000;甚 至 连 复 杂 的 多 路 分 支 语 句 ( 每 个 分 支 都 涉 及 多 个 不 同 语 句 的 执 行 ) 都 可 以 转 化 成 快 速 的 查找 。 你 只 需 要 用 一 个 函 数 引 用 的 散 列 表 就 可 以 实 现 这 些 。 参 阅 第 九 章 , 数 据 结 构 , 里 的 “ 函数 散 列 ” 获 取 如 何 操 作 这 些 的 信 息 。131

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

Saved successfully!

Ooh no, something went wrong!