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.

func $h{stuff}[-1];# 这 个 也 对func 2+5;# 标 量 表 达 式 也 会 导 致 编 译 器 错 误func ${\(2+5) }; # 对 , 不 过 它 是 不 是 比 病 毒 还 糟 糕 ?如 果 你 不 小 心 , 你 可 能 因 为 使 用 函 数 原 型 遇 到 很 多 麻 烦 . 但 如 果 你 非 常 注 意 , 你 可 以 使 用 函数 原 型 来 作 很 多 漂 亮 的 工 作 . 函 数 原 型 是 非 常 强 大 的 , 当 然 需 要 谨 慎 使 用 才 能 得 到 好 的 结 果 .5.0 子 过 程 属 性子 过 程 的 定 义 和 声 明 能 够 附 带 一 些 属 性 . 如 果 属 性 列 表 存 在 , 它 使 用 空 格 或 者 冒 号 分 割 , 并等 同 于 通 过 use attributes 定 义 的 一 样 . 请 阅 读 三 十 一 章 的 use attributes 获 得 内 部 细节 . 有 三 个 标 准 的 子 过 程 属 性 :locked, method 和 左 值 .5.1 Locked 和 method 属 性# 在 这 个 函 数 里 只 允 许 一 个 线 程sub afunc : locked { ... }# 在 一 个 特 定 的 对 象 上 之 允 许 一 个 线 程 进 入 这 个 函 数sub afunc : locked method { ... }只 有 在 子 过 程 或 者 方 法 要 被 多 个 线 程 调 用 的 时 候 , 设 置 locked 属 性 才 有 意 义 . 当 设 置 一个 不 是 方 法 的 子 过 程 的 时 候 ,<strong>Perl</strong> 确 保 在 进 入 子 过 程 之 前 获 得 一 个 锁 . 当 设 置 一 个 方 法 子过 程 时 ( 具 有 method 属 性 的 子 过 程 ),<strong>Perl</strong> 确 保 在 执 行 之 前 锁 住 它 的 第 一 个 参 数 ( 所 属 的对 象 ).method 属 性 能 够 被 它 自 己 使 用 :sub afunc : method { ... }现 在 它 只 是 用 来 标 记 子 过 程 , 使 之 不 产 生 "Ambiguous call resolved as CORE::%s"警 告 .( 我 们 以 后 可 以 给 它 更 多 的 含 义 ).属 性 系 统 是 用 户 可 扩 展 的 ,<strong>Perl</strong> 可 以 让 你 创 建 自 己 的 属 性 名 . 这 些 新 的 属 性 必 须 是 简 单 的标 记 名 字 ( 除 了 "_" 字 符 之 外 没 有 任 何 标 点 符 号 ). 它 们 后 边 可 以 有 一 个 参 数 列 表 用 来 检 查它 的 花 括 弧 是 否 匹 配 正 确 .196

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

Saved successfully!

Ooh no, something went wrong!