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.

而 把 返 回 的 值 丢 弃 了 。( 注 : 优 化 器 会 注 意 到 这 些 并 且 把 后 增 操 作 符 优 化 成 预 增 操 作 符 , 因为 它 执 行 起 来 略 微 快 一 些 。( 你 不 必 知 道 这 些 , 我 们 只 是 希 望 你 听 到 这 个 后 会 开 心 些 。))1.5.5 逻 辑 操 作 符逻 辑 操 作 符 , 也 称 为 “ 短 路 ” 操 作 符 , 允 许 程 序 不 使 用 嵌 套 if 语 句 , 而 根 据 多 个 条 件 来 决 定执 行 流 程 。 他 们 之 所 以 被 称 为 “ 短 路 ” 操 作 符 , 是 因 为 当 认 为 左 边 的 参 数 能 够 提 供 足 够 的 信 息来 决 定 整 个 值 的 时 候 , 它 们 跳 过 ( 短 路 ) 执 行 右 边 的 参 数 。 这 不 仅 仅 是 为 了 效 率 。 你 可 以 依靠 这 种 “ 短 路 ” 的 特 性 来 避 免 执 行 为 左 边 代 码 做 防 护 的 右 边 的 代 码 。 比 如 你 可 以 说“California or bust!”, 在 <strong>Perl</strong> 中 将 不 会 有 bust( 假 设 你 已 经 到 达 California)。实 际 上 <strong>Perl</strong> 有 两 组 逻 辑 操 作 符 , 一 组 传 统 操 作 符 是 借 鉴 了 C 中 的 操 作 符 , 另 外 一 组 比 较新 ( 或 者 更 旧 的 ) 低 级 操 作 符 借 鉴 了 BASIC 中 的 操 作 符 。 两 组 操 作 符 在 使 用 适 当 的 情 况下 都 很 易 读 。 如 果 你 希 望 逻 辑 操 作 符 比 逗 号 优 先 级 更 高 , 那 么 c 的 符 号 操 作 符 运 转 得 很 好 ,而 如 果 你 希 望 逻 辑 操 作 符 比 逗 号 优 先 级 更 低 时 ,BASIC 的 基 于 词 的 操 作 符 比 较 适 合 。 在 很多 情 况 下 , 它 们 得 到 相 同 的 结 果 。 使 用 哪 一 组 你 可 以 根 据 你 自 己 的 喜 好 来 选 择 。( 你 可 以 在第 三 章 中 的 “ 逻 辑 与 , 或 , 非 和 异 或 ” 小 节 找 到 对 比 例 子 )。 虽 然 由 于 优 先 级 不 同 , 这 两 组 操作 符 不 能 互 换 , 但 是 一 旦 它 们 已 经 被 解 析 , 操 作 符 的 效 果 是 一 样 的 , 优 先 级 只 能 在 它 们 参 数的 范 围 内 起 作 用 。 表 1-1 列 出 了 逻 辑 操 作 符 。表 1-1 逻 辑 操 作 符例 子名字结 果$a && $b 与 如 果 $a 为 假 则 为 $a, 否 则 为 $b$a $b 或 如 果 $a 为 真 则 为 $a, 否 则 为 $b! $a | 非 | 如 果 $a 为 假 则 为 真 |$a and $b 与 如 果 $a 为 假 则 为 $a, 否 则 为 $b$a or $b 或 如 果 $a 为 真 则 为 $a, 否 则 为 $bnot $a 非 如 果 $a 为 假 则 为 真$a xor $b 异 或 如 果 $a 或 $b 为 真 , 但 不 能 同 时 为 真因 为 逻 辑 操 作 符 有 ” 短 路 ” 的 特 性 , 因 此 它 们 经 常 被 使 用 在 条 件 执 行 代 码 里 面 . 下 面 的 代 码 ( 平均 分 数 例 子 中 的 第 4 行 ) 试 图 打 开 文 件 grades:open(GRADES, "grades") or die "Can't open file grades: $!\en";32

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

Saved successfully!

Ooh no, something went wrong!