tiefeatures.t

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

T
51
字号
#!/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 + =
减小字号Ctrl + -
显示快捷键?