⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 expmod_n.t

📁 source of perl for linux application,
💻 T
字号:
#!/usr/bin/perluse lib '..';use Memoize;my $n = 0;print "1..22\n";++$n; print "ok $n\n";$RETURN = 1;%CALLS = ();sub call {#  print "CALL $_[0] => $RETURN\n";  ++$CALLS{$_[0]};  $RETURN;}require Memoize::Expire;++$n; print "ok $n\n";tie my %cache => 'Memoize::Expire', NUM_USES => 2;memoize 'call',    SCALAR_CACHE => [HASH => \%cache],    LIST_CACHE => 'FAULT';# $Memoize::Expire::DEBUG = 1;++$n; print "ok $n\n";# 3--6for (0,1,2,3) {  print "not " unless call($_) == 1;  ++$n; print "ok $n\n";}# 7--10for (keys %CALLS) {  print "not " unless $CALLS{$_} == (1,1,1,1)[$_];  ++$n; print "ok $n\n";}# 11--13$RETURN = 2;++$n; print ((call(1) == 1 ? '' : 'not '), "ok $n\n"); # 1 expires++$n; print ((call(1) == 2 ? '' : 'not '), "ok $n\n"); # 1 gets new val++$n; print ((call(2) == 1 ? '' : 'not '), "ok $n\n"); # 2 expires# 14--17$RETURN = 3;for (0,1,2,3) {  # 0 expires, 1 expires, 2 gets new val, 3 expires  print "not " unless call($_) == (1,2,3,1)[$_];  ++$n; print "ok $n\n";}for (0,1,2,3) {  print "not " unless $CALLS{$_} == (1,2,2,1)[$_];  ++$n; print "ok $n\n";}

⌨️ 快捷键说明

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