expfile.t

来自「source of perl for linux application,」· T 代码 · 共 76 行

T
76
字号
#!/usr/bin/perluse lib '..';use Memoize;my $n = 0;$|=1;if (-e '.fast') {  print "1..0\n";  exit 0;}print "1..12\n";# (1)++$n; print "ok $n\n";my $READFILE_CALLS = 0;my $FILE = './TESTFILE';sub writefile {  my $FILE = shift;  open F, "> $FILE" or die "Couldn't write temporary file $FILE: $!";  print F scalar(localtime), "\n";  close F;}sub readfile {  $READFILE_CALLS++;  my $FILE = shift;  open F, "< $FILE" or die "Couldn't write temporary file $FILE: $!";  my $data = <F>;  close F;  $data;}require Memoize::ExpireFile;# (2)++$n; print "ok $n\n";tie my %cache => 'Memoize::ExpireFile';memoize 'readfile',    SCALAR_CACHE => [HASH => \%cache],    LIST_CACHE => 'FAULT'    ;# (3)++$n; print "ok $n\n";# (4)writefile($FILE);++$n; print "ok $n\n";sleep 4;# (5-6)my $t1 = readfile($FILE);++$n; print "ok $n\n";++$n; print ((($READFILE_CALLS == 1) ? '' : 'not '), "ok $n\n");# (7-9)my $t2 = readfile($FILE);++$n; print "ok $n\n";  ++$n; print ((($READFILE_CALLS == 1) ? '' : 'not '), "ok $n\n");++$n; print ((($t1 eq $t2) ? '' : 'not '), "ok $n\n");# (10-12)sleep 4;writefile($FILE);my $t3 = readfile($FILE);++$n; print "ok $n\n";++$n; print ((($READFILE_CALLS == 2) ? '' : 'not '), "ok $n\n");++$n; print ((($t1 ne $t3) ? '' : 'not '), "ok $n\n");END { 1 while unlink $FILE }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?