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.

这 么 用 的 功 能 是 非 常 强 大 的 , 并 且 有 点 危 险 , 因 为 我 们 有 可 能 原 来 想 用 的 是 ( 有 着 最 好 的 安全 性 ) 硬 引 用 , 但 是 却 不 小 心 用 了 一 个 符 号 引 用 。 为 了 防 止 出 现 这 个 问 题 , 你 可 以 说 :use strict 'refs';然 后 在 闭 合 块 的 剩 余 部 分 , 你 就 只 被 允 许 使 用 硬 引 用 。 更 内 层 的 块 可 以 用 下 面 的 语 句 撤 消 这样 的 命 令 :no strict 'refs';另 外 , 我 们 还 必 须 理 解 下 面 两 行 程 序 的 区 别 :${identifier};# 和 $identifier 一 样${"identifier"}; # 也 是 $identifier, 不 过 却 是 一 个 符 号 引 用 。因 为 第 二 种 形 式 是 引 号 引 起 的 , 所 以 它 被 当 作 一 个 符 号 引 用 , 如 果 这 时 候 use strict 'refs'起 作 用 的 话 它 将 会 生 成 一 个 错 误 。 就 算 strict 'refs' 没 有 起 作 用 , 它 也 只 能 指 向 一 个 包 变量 。 但 是 第 一 种 形 式 是 和 没 有 花 括 弧 的 形 式 相 等 的 , 它 甚 至 可 以 指 向 一 个 词 法 范 围 的 变 量 ,只 要 你 定 义 了 这 么 一 个 。 下 面 的 例 子 显 示 了 这 个 用 法 ( 而 且 下 一 节 就 是 讨 论 这 个 问 题 的 )。只 有 包 变 量 可 以 通 过 符 号 引 用 访 问 , 因 为 符 号 引 用 总 是 查 找 包 的 符 号 表 。 由 于 词 法 变 量 不 是在 包 的 符 号 表 里 面 , 因 此 它 们 对 这 种 机 制 是 隐 形 的 。 比 如 :our $value = "global";{my $value = "private";print "Inside, mine is ${value},";print "but ours is ${'value'}.\n";}print "Outside, ${value} is again ${'value'}.\n";它 打 印 出 :Inside, mine is private, but ours is global.Outside, global is again global.8.5 花 括 弧 , 方 括 弧 和 引 号232

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

Saved successfully!

Ooh no, something went wrong!