13.07.2015 Views

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

open $fh, ">", $filename){close $fh;$count++;return bless \$filename, $class;}carp "Can't tie $filename: $!" if warnings::enabled();return;}有 了 这 样 的 构 造 器 , 我 们 现 在 就 可 以 把 标 量 $string 和 文 件 camel.lot 关 联 在 一 起 了 :tie ($string, "ScalarFile", "camel.lot") or die;( 我 们 仍 然 做 了 一 些 不 应 该 做 的 假 设 。 在 一 个 正 式 版 本 里 , 我 们 可 能 打 开 该 文 件 句 柄 一 次并 且 在 捆 绑 的 过 程 中 记 住 该 文 件 句 柄 和 文 件 名 , 保 证 此 句 柄 在 所 有 时 间 里 都 是 用 flock 排他 锁 住 的 。 否 则 我 们 就 会 面 对 冲 突 条 件 —— 参 阅 第 二 十 三 章 , 安 全 , 里 的 “ 处 理 计 时 缝 隙 ”。)• SELF->FETCH当 你 访 问 这 个 捆 绑 变 量 的 时 候 就 会 调 用 这 个 方 法 ( 也 就 是 说 , 读 取 其 值 ). 除 了 与 变 量 捆绑 的 对 象 以 外 , 它 没 有 其 他 的 参 数 . 在 我 们 的 例 子 里 , 那 个 对 象 包 含 文 件 名 .sub FETCH {my $self = shift;confess "I am not a class method" unless ref $self;return unless open my $fh, $$self;read($fh, my $value, -s $fh); # NB: 不 要 在 管 道 上 使 用 -sreturn $value;}353

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

Saved successfully!

Ooh no, something went wrong!