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.

在 标 量 环 境 里 ,.. 返 回 一 个 布 尔 值 。 该 操 作 符 是 双 稳 定 的 , 类 似 一 个 电 子 开 关 , 并 且 它 仿真 sed,awk, 和 各 种 编 辑 器 的 行 范 围 ( 逗 号 ) 操 作 符 。 每 个 .. 操 作 符 都 维 护 自 身 的 状 态 。只 要 它 的 左 操 作 数 为 假 就 一 直 为 假 。 一 旦 左 操 作 数 为 真 , 该 范 围 操 作 符 就 保 持 真 的 状 态 直 到右 操 作 数 为 真 , 右 操 作 数 为 真 之 后 该 范 围 操 作 符 再 次 为 假 。 该 操 作 符 在 下 次 计 算 之 前 不 会 变成 假 。 它 可 以 测 试 右 操 作 数 并 且 在 右 操 作 数 变 真 后 在 同 一 次 计 算 中 变 成 假 (awk 的 范 围 操作 符 的 特 性 ), 不 过 它 还 是 会 返 回 一 次 真 。 如 果 你 不 想 拖 到 下 一 次 计 算 中 才 测 试 右 操 作 数 ( 也是 sed 的 范 围 操 作 符 的 工 作 方 式 ), 只 需 要 用 三 个 点 (...) 代 替 两 个 点 (..)。 对 于 .. 和 ...,当 操 作 符 处 于 假 状 态 后 就 不 再 测 试 右 操 作 数 , 而 当 操 作 符 处 于 真 状 态 后 就 不 再 测 试 左 操 作数 。返 回 的 值 要 么 是 代 表 假 的 空 字 串 或 者 是 代 表 真 的 一 个 序 列 数 ( 从 1 开 始 )。 该 序 列 数 每 次碰 到 新 范 围 时 重 置 。 在 一 个 范 围 里 的 最 后 序 列 数 后 面 附 加 了 字 串 “E0”, 这 个 字 串 不 影 响 它的 数 字 值 , 只 是 给 你 一 些 东 西 让 你 可 以 搜 索 , 这 样 你 可 以 把 终 点 排 除 在 外 。 你 也 可 以 通 过 等待 1 的 序 列 数 的 方 法 把 启 始 点 排 除 在 外 。 如 果 标 量 .. 的 某 个 操 作 数 是 数 字 文 本 , 那 么 该操 作 数 隐 含 地 与 $. 变 量 对 比 ,$. 里 包 含 你 的 输 入 文 件 的 当 前 行 号 。 比 如 :if(101 .. 200) {print;}next line if( 1.. /^$/);# 打 印 第 二 个 一 百 行# 忽 略 开 头 行s/^/> / if (/^$/ .. eof());# 引 起 体在 列 表 环 境 里 , .. 返 回 一 列 从 左 值 到 右 值 计 数 ( 以 一 ) 的 数 值 。 这 样 对 书 写 (1 .. 10) 循环 和 数 组 片 段 的 操 作 很 有 帮 助 :for (101 .. 200) {print;} # 打 印 101102 。。。 199200@foo = @foo[0 .. $#foo];@foo = @foo[ -5 .. -1];# 一 个 昂 贵 的 空 操 作# 最 后 5 个 元 素 的 片 段如 果 左 边 的 值 大 于 右 边 的 值 , 则 返 回 一 个 空 列 表 。( 要 产 生 一 列 反 序 的 列 表 , 参 阅 reverse操 作 符 。)如 果 操 作 数 是 字 串 , 范 围 操 作 符 利 用 早 先 讨 论 过 的 自 增 处 理 。( 注 : 如 果 在 所 声 明 的 终 值 不是 自 增 处 理 中 产 生 的 序 列 中 的 数 , 那 么 该 序 列 将 继 续 增 加 直 到 下 一 个 值 比 声 明 的 终 值 长 为止 。) 因 此 你 可 以 说 :@alphabet = ('A' .. 'Z');以 获 得 所 有 英 文 字 母 , 或 者 :104

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

Saved successfully!

Ooh no, something went wrong!