4 # grep() and map() tests
12 my ($got,$expect) = @_;
13 print "# expected [$expect], got [$got]\nnot " if $got ne $expect;
18 my @lol = ([qw(a b c)], [], [qw(1 2 3)]);
19 my @mapped = map {scalar @$_} @lol;
20 ok "@mapped", "3 0 3";
23 my @grepped = grep {scalar @$_} @lol;
24 ok "@grepped", "$lol[0] $lol[2]";
27 @grepped = grep { $_ } @mapped;
33 print map({$_} ("ok $test\n"));
36 ({$_} ("ok $test\n"));
38 print((map({a => $_}, ("ok $test\n")))[0]->{a});
42 ("ok $test\n")))[0]->{a});
44 print map { $_ } ("ok $test\n");
47 { $_ } ("ok $test\n");
49 print((map {a => $_}, ("ok $test\n"))[0]->{a});
53 ("ok $test\n"))[0]->{a});
55 my $x = "ok \xFF\xFF\n";
56 print map($_&$x,("ok $test\n"));
59 ($_ & $x, ("ok $test\n"));
61 print map { $_ & $x } ("ok $test\n");
64 { $_&$x } ("ok $test\n");
67 print grep({$_} ("ok $test\n"));
70 ({$_} ("ok $test\n"));
72 print grep({a => $_}->{a}, ("ok $test\n"));
78 print grep { $_ } ("ok $test\n");
81 { $_ } ("ok $test\n");
83 print grep {a => $_}->{a}, ("ok $test\n");
89 print grep($_&"X",("ok $test\n"));
92 ($_&"X", ("ok $test\n"));
94 print grep { $_ & "X" } ("ok $test\n");
97 { $_ & "X" } ("ok $test\n");