一个实现标量的类应该提供下列方法:
TIESCALAR CLASS, LIST
FETCH SELF,
STORE SELF, VALUE
DESTROY SELF
一个实现文件句柄的类应该提供下列方法:
TIEHANDLE CLASS, LIST READ SELF, SCALAR, LENGTH, OFFSET READLINE SELF GETC SELF WRITE SELF, SCALAR, LENGTH, OFFSET PRINT SELF, LIST PRINTF SELF, FORMAT, LIST CLOSE SELF DESTROY SELF
并不是上面提到的所有方法都需要实现:Tie::Hash,Tie::Array,Tie::Scalar,和 Tie::Handle 模块提供了有着合理的缺省的基类。参阅第十四章,捆绑变量,获取所有这些方法的详细描述。和 dbmopen 不同,tie 函数将不会为你 use 或者 require 一个模块——你必须自己明确地做这件事情。参阅 DB_File 和 Config 方法获取有趣的 tie 实现。
teid VARIABLE
这个函数返回一个引用,该引用指向包含在 VARIABLE 里的标量,数组,散列或者类型团的的下层对象。(VARIABLE 是最初用 tie 调用把该变量和一个包绑定在一起的同一个值。)如果 VARIABLE 没有和一个包绑定,它返回未定义的数值。因此,比如,你可以用:
ref tied %hash
找出你的散列与哪个包捆绑。(假设你忘记了。)
time
这个函数返回自“”以来的没有润秒的秒数,通常是 1970年1月1日 00:00:00 UTC。(注:不要和创造 Unix 的“历史”相混淆。(其他操作系统可能有不同的,更别说历史了。))返回值可以传递给 gmtime 和 localtime,可以用于比较 stat 返回的文件修改以及访问的时间,还有就是传递给 utime。
$start = time();
system("some slow command");
$end = time();
if ($end - $start > 1) {
print "Program started: ", scalar localtime($start), "\n";
print "Program ended: ", scalar localtime($end), "\n";
}
times
在这个环境里,这个函数返回一个四元素的列表,该列表给出这个进程和它已结束的子进程以秒计(可能是分数)的用户和系统 CPU 时间。
($user, $system, $cuser, $csystem) = times();
printf "This pid and its kids have consumed %.3f seconds\n",
$user + $system + $cuser + $csystem;
在标量环境里,只返回用户时间。比如,要计算一段 Perl 代码的执行速度:
$stat = times();
...
$end = times();
printf "that took %.2f CPU seconds of user time\n",
$end - $start;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28372-22.html
不能打无准备之仗