Commit | Line | Data |
---|---|---|
14342f72 | 1 | use strict; |
2 | use warnings; | |
3 | use Test::More 0.89; | |
4 | ||
5 | use Gather::Once | |
83489a6b | 6 | block => 'with', |
7 | take => 'iff', | |
14342f72 | 8 | topicalise => 1, |
9 | predicate => sub { | |
83489a6b | 10 | diag explain \@_; |
14342f72 | 11 | $_[0] == $_[1]; |
12 | }; | |
13 | ||
14 | my $n = 42; | |
15 | ||
16 | my @ret = with ($n) { | |
17 | warn 42; | |
83489a6b | 18 | iff (23) { 42 }; |
14342f72 | 19 | iff (42) { 23 }; |
20 | warn 23; | |
21 | 42; | |
22 | }; | |
23 | ||
24 | diag explain \@ret; | |
25 | ||
83489a6b | 26 | done_testing; |
27 | ||
28 | __END__ | |
29 | ||
30 | my $pred = sub {}; | |
31 | my @ret___ = do { | |
32 | warn 42; | |
33 | ($pred->($n, 23)) | |
34 | ? do { 42 } | |
35 | : ($pred->($n, 42)) | |
36 | ? do { 23 } | |
37 | : do { | |
38 | warn 23; | |
39 | 42; | |
40 | }; | |
41 | }; | |
42 | ||
43 | diag explain \@ret; | |
44 | ||
14342f72 | 45 | use Gather::Once |
46 | block => 'moo', | |
47 | take => 'iff_', | |
48 | predicate => sub { | |
49 | warn scalar @_; | |
50 | warn "$_[0]"; | |
51 | !!$_[0] | |
52 | }; | |
53 | ||
54 | =for later | |
55 | iff_ (42) { }; | |
56 | =cut | |
57 | ||
58 | my @ret_ = moo { | |
59 | iff_ (42) { 1, 2, 3 }; | |
60 | }; | |
61 | ||
83489a6b | 62 | my @ret__ = do { |
63 | $pred->(42) ? do { 1, 2, 3 } : () | |
64 | }; | |
65 | ||
14342f72 | 66 | diag explain \@ret_; |
67 | ||
68 | done_testing; |