| Line | |
|---|
| 1 | #!./perl
|
|---|
| 2 |
|
|---|
| 3 | print "1..12\n";
|
|---|
| 4 | sub context {
|
|---|
| 5 | my ( $cona, $testnum ) = @_;
|
|---|
| 6 | my $conb = (defined wantarray) ? ( wantarray ? 'A' : 'S' ) : 'V';
|
|---|
| 7 | unless ( $cona eq $conb ) {
|
|---|
| 8 | print "# Context $conb should be $cona\nnot ";
|
|---|
| 9 | }
|
|---|
| 10 | print "ok $testnum\n";
|
|---|
| 11 | }
|
|---|
| 12 |
|
|---|
| 13 | context('V',1);
|
|---|
| 14 | $a = context('S',2);
|
|---|
| 15 | @a = context('A',3);
|
|---|
| 16 | scalar context('S',4);
|
|---|
| 17 | $a = scalar context('S',5);
|
|---|
| 18 | ($a) = context('A',6);
|
|---|
| 19 | ($a) = scalar context('S',7);
|
|---|
| 20 |
|
|---|
| 21 | {
|
|---|
| 22 | # [ID 20020626.011] incorrect wantarray optimisation
|
|---|
| 23 | sub simple { wantarray ? 1 : 2 }
|
|---|
| 24 | sub inline {
|
|---|
| 25 | my $a = wantarray ? simple() : simple();
|
|---|
| 26 | $a;
|
|---|
| 27 | }
|
|---|
| 28 | my @b = inline();
|
|---|
| 29 | my $c = inline();
|
|---|
| 30 | print +(@b == 1 && "@b" eq "2") ? "ok 8\n" : "not ok 8\t# <@b>\n";
|
|---|
| 31 | print +($c == 2) ? "ok 9\n" : "not ok 9\t# <$c>\n";
|
|---|
| 32 | }
|
|---|
| 33 |
|
|---|
| 34 | my $qcontext = q{
|
|---|
| 35 | $q = (defined wantarray) ? ( wantarray ? 'A' : 'S' ) : 'V';
|
|---|
| 36 | };
|
|---|
| 37 | eval $qcontext;
|
|---|
| 38 | print $q eq 'V' ? "ok 10\n" : "not ok 10\n";
|
|---|
| 39 | $a = eval $qcontext;
|
|---|
| 40 | print $q eq 'S' ? "ok 11\n" : "not ok 11\n";
|
|---|
| 41 | @a = eval $qcontext;
|
|---|
| 42 | print $q eq 'A' ? "ok 12\n" : "not ok 12\n";
|
|---|
| 43 |
|
|---|
| 44 | 1;
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.