grep.t

来自「UNIX下perl实现代码」· T 代码 · 共 100 行

T
100 行
字号
#!./perl## grep() and map() tests#print "1..27\n";$test = 1;sub ok {    my ($got,$expect) = @_;    print "# expected [$expect], got [$got]\nnot " if $got ne $expect;    print "ok $test\n";}{   my @lol = ([qw(a b c)], [], [qw(1 2 3)]);   my @mapped = map  {scalar @$_} @lol;   ok "@mapped", "3 0 3";   $test++;   my @grepped = grep {scalar @$_} @lol;   ok "@grepped", "$lol[0] $lol[2]";   $test++;   @grepped = grep { $_ } @mapped;   ok "@grepped", "3 3";   $test++;}{   print map({$_} ("ok $test\n"));   $test++;   print map            ({$_} ("ok $test\n"));   $test++;   print((map({a => $_}, ("ok $test\n")))[0]->{a});   $test++;   print((map            ({a=>$_},	     ("ok $test\n")))[0]->{a});   $test++;   print map { $_ } ("ok $test\n");   $test++;   print map            { $_ } ("ok $test\n");   $test++;   print((map {a => $_}, ("ok $test\n"))[0]->{a});   $test++;   print((map            {a=>$_},	     ("ok $test\n"))[0]->{a});   $test++;   my $x = "ok \xFF\xFF\n";   print map($_&$x,("ok $test\n"));   $test++;   print map            ($_ & $x, ("ok $test\n"));   $test++;   print map { $_ & $x } ("ok $test\n");   $test++;   print map             { $_&$x } ("ok $test\n");   $test++;   print grep({$_} ("ok $test\n"));   $test++;   print grep            ({$_} ("ok $test\n"));   $test++;   print grep({a => $_}->{a}, ("ok $test\n"));   $test++;   print grep	     ({a => $_}->{a},	     ("ok $test\n"));   $test++;   print grep { $_ } ("ok $test\n");   $test++;   print grep             { $_ } ("ok $test\n");   $test++;   print grep {a => $_}->{a}, ("ok $test\n");   $test++;   print grep	     {a => $_}->{a},	     ("ok $test\n");   $test++;   print grep($_&"X",("ok $test\n"));   $test++;   print grep            ($_&"X", ("ok $test\n"));   $test++;   print grep { $_ & "X" } ("ok $test\n");   $test++;   print grep             { $_ & "X" } ("ok $test\n");   $test++;}

⌨️ 快捷键说明

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