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.

文 。 如 果 循 环 原 型 是 处 理 行 的 , 那 循 环 标 记 原 型 就 是 LINE:, 因 此 循 环 控 制 操 作 符 就 是 类似 这 样 的 东 西 :next LINE if / ^#/;# 丢 弃 注 释循 环 控 制 操 作 符 的 语 法 是 :last LABELnext LABELredo LABELLABEL 是 可 选 的 ; 如 果 忽 略 了 , 该 操 作 符 就 选 用 最 内 层 的 封 闭 循 环 。 但 是 如 果 你 想 跳 过 比一 层 多 的 ( 循 环 ), 那 你 就 必 须 用 一 个 LABEL 以 命 名 你 想 影 响 的 循 环 。LABEL 不 一 定 非在 你 的 词 法 范 围 内 不 可 ( 尽 管 它 应 该 在 词 法 范 围 里 )。 实 际 上 ,LABEL 可 以 在 你 的 动 态 范围 的 任 何 地 方 。 如 果 它 的 位 置 强 制 你 的 跳 转 超 出 了 一 个 eval 或 者 子 过 程 的 范 围 ,<strong>Perl</strong> ( 会根 据 需 要 ) 发 出 一 个 警 告 。就 象 在 一 个 函 数 里 你 可 以 想 要 几 个 return 就 要 几 个 return 一 样 , 你 也 可 以 在 循 环 里 想要 几 个 循 环 控 制 语 句 就 要 几 个 。 在 早 期 的 结 构 化 编 程 的 日 子 里 , 有 些 人 坚 持 认 为 循 环 和 子 过程 只 能 有 一 个 入 口 和 一 个 出 口 。 单 入 口 的 表 示 法 是 个 好 主 意 , 可 单 出 口 的 想 法 却 让 我 们 写 了许 多 非 自 然 的 代 码 。 许 多 程 序 都 包 括 在 决 策 树 里 漫 游 的 问 题 。 一 个 决 策 树 通 常 从 一 个 树 干 开始 , 但 通 常 以 许 多 叶 子 结 束 。 把 你 的 循 环 退 出 代 码 ( 还 有 函 数 返 回 代 码 ) 写 成 具 有 多 个 出 口是 解 决 你 的 问 题 的 很 自 然 的 做 法 。 如 果 你 在 合 适 的 范 围 里 定 义 你 的 变 量 , 那 么 所 有 东 西 在 合适 的 时 候 都 会 被 清 理 干 净 , 不 管 你 是 如 何 退 出 该 语 句 块 的 。last 操 作 符 立 即 退 出 当 事 循 环 。 如 果 有 continue 块 也 不 会 执 行 。 下 面 的 例 子 在 第 一 个 空白 行 撤 出 循 环 :LINE: while () {last LINE if /^$/;# 当 处 理 完 邮 件 头 后 退 出}next 操 作 符 忽 略 当 前 循 环 的 余 下 的 语 句 然 后 开 始 一 次 新 的 循 环 。 如 果 循 环 里 有 continue子 句 , 那 它 将 就 在 重 新 计 算 条 件 之 前 执 行 , 就 象 三 部 分 的 for 循 环 的 第 三 个 部 件 一 样 。 因此 continue 语 句 可 以 用 于 增 加 循 环 变 量 —— 即 使 是 在 循 环 的 部 分 语 句 被 next 终 止 了 的情 况 下 :LINE: while () {124

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

Saved successfully!

Ooh no, something went wrong!