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.

不 同 于 if 和 while 语 句 ,foreach 的 条 件 表 达 式 时 在 列 表 环 境 中 , 而 不 是 标 量 环 境 。 因此 表 达 式 用 于 生 成 一 个 列 表 ( 即 使 列 表 中 只 有 一 个 标 量 )。 然 后 列 表 中 的 每 个 元 素 按 顺 序 作为 循 环 变 量 , 同 时 循 环 体 代 码 针 对 每 个 元 素 执 行 一 次 。 注 意 循 环 变 量 直 接 指 向 元 素 本 身 , 而不 是 它 的 一 个 拷 贝 , 因 此 , 修 改 循 环 变 量 , 就 是 修 改 原 始 数 组 。你 将 发 现 在 <strong>Perl</strong> 程 序 中 ,foreach 循 环 比 for 循 环 要 多 得 多 , 这 是 因 为 <strong>Perl</strong> 经 常 使 用一 些 需 要 使 用 foreach 遍 历 的 各 种 列 表 。 你 经 常 会 看 到 使 用 下 面 的 代 码 来 遍 历 散 列 的 关 键字 :foreach $key (sort keys %hash) {实 际 上 “ 平 均 分 ” 例 子 中 的 第 9 行 也 用 到 了 它 。1.6.3.4 跳 出 控 制 结 构 : next 和 lastnext 和 last 操 作 符 允 许 你 在 循 环 中 改 变 程 序 执 行 的 方 向 。 你 可 能 会 经 常 遇 到 一 些 的 特 殊情 况 , 碰 到 这 种 情 况 时 你 希 望 跳 过 它 , 或 者 想 退 出 循 环 。 比 如 当 你 处 理 Unix 账 号 时 , 你也 许 希 望 跳 过 系 统 账 号 ( 比 如 root 或 lp),next 操 作 符 允 许 你 将 跳 至 本 次 循 环 的 结 束 ,开 始 下 一 个 循 环 。 而 last 操 作 符 允 许 你 跳 至 整 个 循 环 的 结 束 , 如 同 循 环 条 件 表 达 式 为 假 时发 生 的 情 况 一 样 。 例 如 在 下 面 例 子 中 , 你 正 在 查 找 某 个 特 殊 账 号 , 并 且 希 望 找 到 后 立 即 退 出循 环 , 这 时 候 ,last 就 非 常 有 用 了 :foreach $user (@users) {if ($user eq "root" or $user eq "lp") {next;}if ($user eq "special") {print "Found the special account.\en";# 做 些 处 理last;}}39

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

Saved successfully!

Ooh no, something went wrong!