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.

RANK => 'Captain',SERNO => '951413',};或 者 用 命 名 的 参 数 激 活 复 杂 的 函 数 :$fiels = radio_group(NAME => 'animals'VALUESDEFAULTLINEBREADLABELS=>['camel','llama','ram','wolf'],=>'camel',=> 'true',=>\%animal_names,);不 过 这 里 我 们 又 走 的 太 远 了 。 先 回 到 散 列 。你 可 以 在 一 个 列 表 环 境 里 使 用 散 列 变 量 (%hash), 这 种 情 况 下 它 把 它 的 键 字 / 数 值 对 转 换成 列 表 。 但 是 , 并 不 意 味 着 以 某 种 顺 序 初 始 化 的 散 列 就 应 该 同 样 的 顺 序 恢 复 出 来 。 散 列 在 系统 内 部 实 现 上 是 使 用 散 列 表 来 达 到 高 速 查 找 , 这 意 味 着 记 录 存 储 的 顺 序 和 内 部 用 于 计 算 记 录在 散 列 表 的 里 的 位 置 的 散 列 函 数 有 关 , 而 与 任 何 其 它 事 情 无 关 。 因 此 , 记 录 恢 复 出 来 的 时 候看 起 来 是 随 机 的 顺 序 。( 当 然 , 每 一 对 键 字 / 数 值 是 以 正 确 的 顺 序 取 出 来 的 。) 关 于 如 何 获得 排 序 输 出 的 例 子 , 可 以 参 考 第 二 十 九 章 的 keys 函 数 。当 你 在 标 量 环 境 里 计 算 散 列 变 量 的 数 值 的 时 候 , 它 只 有 在 散 列 包 含 任 意 键 字 / 数 值 对 时 才 返回 真 。 如 果 散 列 里 存 在 键 字 / 数 值 对 , 返 回 的 值 是 一 个 用 斜 线 分 隔 的 已 用 空 间 和 分 配 的 总 空间 的 值 组 成 的 字 串 。 这 个 特 点 可 以 用 于 检 查 <strong>Perl</strong> 的 ( 编 译 好 的 ) 散 列 算 法 在 你 的 数 据 集 里面 性 能 是 否 太 差 。 比 如 , 你 把 10,000 个 东 西 放 到 一 个 散 列 里 面 , 但 是 在 标 量 环 境 里 面 计算 %HASH 得 出 “1/8”, 意 味 着 总 共 八 个 桶 里 只 用 了 一 个 桶 。 大 概 是 一 个 桶 里 存 放 了10,000 个 条 目 。 这 可 是 不 应 该 发 生 的 事 情 。要 算 出 一 个 散 列 里 面 的 键 字 的 数 量 , 在 标 量 环 境 里 使 用 keys 函 数 :scalar(keys(%HASH)).78

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

Saved successfully!

Ooh no, something went wrong!