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.

不 过 , 你 会 觉 得 下 面 的 更 好 读 :unless(open FILE, $file) {warn "Can't open $file: $!\n";next FILE;}4.4 光 块一 个 BLOCK 本 身 ( 带 标 记 或 者 不 带 标 记 ) 等 效 于 一 个 执 行 一 次 的 循 环 。 所 以 你 可 以 用 last退 出 一 个 块 或 者 用 redo 重 新 运 行 块 ( 注 : 相 比 之 下 ,next 也 退 出 这 种 一 次 性 的 块 。 不 过有 点 小 区 别 :next 会 执 行 一 个 continue 块 , 而 last 不 会 。)。 不 过 请 注 意 , 对 于 eval{},sub{} 或 者 更 让 人 吃 惊 的 是 do{} 这 些 构 造 而 言 , 情 况 就 不 一 样 了 。 这 哥 仨 不 是 循 环 块 ,因 为 它 们 自 己 就 不 是 BLOCK; 它 们 前 面 的 键 字 把 它 们 变 成 了 表 达 式 中 的 项 , 只 不 过 碰 巧 包含 一 个 语 句 块 罢 了 。 因 为 它 们 不 是 循 环 块 , 所 以 不 能 给 它 们 打 上 标 记 用 以 循 环 控 制 等 用 途 。循 环 控 制 只 能 用 于 真 正 的 循 环 , 就 象 return 只 能 用 于 子 过 程 ( 或 者 eval ) 一 样 。循 环 控 制 也 不 能 在 一 个 if 或 unless 里 运 行 , 因 为 它 们 也 不 是 循 环 。 但 是 你 总 是 可 以 引 入一 付 额 外 的 花 括 弧 , 这 样 就 有 了 一 个 光 块 , 而 光 块 的 确 是 一 个 循 环 :if ( /pattern/) {{last if /alpha/;last if /beta/;last if /gamma/;# 在 这 里 处 理 一 些 只 在 if() 里 处 理 的 事 情}}下 面 是 如 何 利 用 一 个 光 块 实 现 在 do{} 构 造 里 面 使 用 循 环 控 制 操 作 符 的 例 子 。 要 next 或redo 一 个 do, 在 它 里 面 放 一 个 光 块 :do {{next if $x == $y;# 在 这 处 理 一 些 事 务127

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

Saved successfully!

Ooh no, something went wrong!