📄 tiefeatures.t
字号:
#!/usr/bin/perluse lib 'blib/lib';use Memoize 0.45 qw(memoize unmemoize);use Fcntl;# print STDERR $INC{'Memoize.pm'}, "\n";print "1..10\n";# Test MERGEsub xx { wantarray();}my $s = xx();print ((!$s) ? "ok 1\n" : "not ok 1\n");my ($a) = xx();print (($a) ? "ok 2\n" : "not ok 2\n");memoize 'xx', LIST_CACHE => MERGE;$s = xx();print ((!$s) ? "ok 3\n" : "not ok 3\n");($a) = xx(); # Should return cached false value from previous invocationprint ((!$a) ? "ok 4\n" : "not ok 4\n");# Test FAULTsub ns {}sub na {}memoize 'ns', SCALAR_CACHE => FAULT;memoize 'na', LIST_CACHE => FAULT;eval { my $s = ns() }; # Should faultprint (($@) ? "ok 5\n" : "not ok 5\n");eval { my ($a) = na() }; # Should faultprint (($@) ? "ok 6\n" : "not ok 6\n");# Test HASHmy (%s, %l);sub nul {}memoize 'nul', SCALAR_CACHE => [HASH => \%s], LIST_CACHE => [HASH => \%l];nul('x');nul('y');print ((join '', sort keys %s) eq 'xy' ? "ok 7\n" : "not ok 7\n");print ((join '', sort keys %l) eq '' ? "ok 8\n" : "not ok 8\n");() = nul('p');() = nul('q');print ((join '', sort keys %s) eq 'xy' ? "ok 9\n" : "not ok 9\n");print ((join '', sort keys %l) eq 'pq' ? "ok 10\n" : "not ok 10\n");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -