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.

解 引 用 的 类 型 是 由 右 操 作 数 决 定 的 , 也 就 是 , 由 直 接 跟 在 箭 头 后 面 的 东 西 决 定 。 如 果 箭 头 后面 的 东 西 是 一 个 方 括 弧 或 者 花 括 弧 , 那 么 左 操 作 数 就 分 别 当 作 一 个 指 向 一 个 数 组 或 者 散 列 的引 用 , 由 右 边 的 操 作 数 做 下 标 定 位 。 如 果 箭 头 后 面 的 东 西 是 一 个 左 圆 括 弧 , 那 么 左 操 作 数 就当 作 一 个 指 向 一 个 子 过 程 的 引 用 看 待 , 然 后 用 你 在 圆 括 弧 右 边 提 供 的 参 数 进 行 调 用 。下 面 的 东 西 每 三 行 都 是 一 样 的 , 分 别 对 应 我 们 已 经 介 绍 过 的 三 种 表 示 法 。( 我 们 插 入 了 一 些空 白 , 以 便 将 等 效 的 元 素 对 齐 。)$ $arrayref [2] = "Dorian"; #1${ $arrayref }[2] = "Dorian"; #2$arrayref->[2] = "Dorian"; #3$ $hashref {KEY} = "F#major"; #1${ $hashref }{KEY} = "F#major"; #2$hashref->{KEY} = "F#major"; #3& $coderef (Presto => 192); #1&{ $coderef }(Presto => 192); #2$coderef->(Presto => 192); #3你 可 以 注 意 到 , 在 每 个 三 行 组 里 , 第 三 种 表 示 法 的 趣 味 字 符 都 不 见 了 。 这 个 趣 味 字 符 是 由<strong>Perl</strong> 猜 测 的 , 这 就 是 为 什 么 你 不 能 用 它 对 整 个 数 组 , 整 个 散 列 , 或 者 是 它 们 的 某 个 片 段 进行 解 引 用 。 不 过 , 只 要 你 坚 持 使 用 标 量 数 值 , 那 么 你 就 可 以 在 -> 左 边 使 用 任 意 表 达 式 ,包 括 另 外 一 个 解 引 用 , 因 为 多 个 箭 头 操 作 符 是 从 左 向 右 关 联 的 :print $array[3]->{"English"}->[0];你 可 以 从 这 个 表 达 式 里 推 论 出 @array 的 第 四 个 元 素 是 一 个 散 列 引 用 , 并 且 该 散 列 里 的"English" 记 录 的 数 值 是 一 个 数 组 的 引 用 。请 注 意 $array[3] 和 $array->[3] 是 不 一 样 的 。 第 一 个 东 西 讲 的 是 @array 里 的 第 四个 元 素 , 而 第 二 个 东 西 讲 的 是 一 个 保 存 在 $array 里 的 数 组 ( 可 能 是 匿 名 的 数 组 ) 引 用 的第 四 个 元 素 。220

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

Saved successfully!

Ooh no, something went wrong!