summaryrefslogtreecommitdiff
path: root/t/op/do.t
blob: 6c26bc4242820d61d9965e6ea56bd3d11971872b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!./perl

# $RCSfile: do.t,v $$Revision: 4.1 $$Date: 92/08/07 18:27:45 $

sub foo1
{
    print $_[0];
    'value';
}

sub foo2
{
    shift;
    print $_[0];
    $x = 'value';
    $x;
}

print "1..18\n";

$_[0] = "not ok 1\n";
$result = do foo1("ok 1\n");
print "#2\t:$result: eq :value:\n";
if ($result eq 'value') { print "ok 2\n"; } else { print "not ok 2\n"; }
if ($_[0] eq "not ok 1\n") { print "ok 3\n"; } else { print "not ok 3\n"; }

$_[0] = "not ok 4\n";
$result = do foo2("not ok 4\n","ok 4\n","not ok 4\n");
print "#5\t:$result: eq :value:\n";
if ($result eq 'value') { print "ok 5\n"; } else { print "not ok 5\n"; }
if ($_[0] eq "not ok 4\n") { print "ok 6\n"; } else { print "not ok 6\n"; }

$result = do{print "ok 7\n"; 'value';};
print "#8\t:$result: eq :value:\n";
if ($result eq 'value') { print "ok 8\n"; } else { print "not ok 8\n"; }

sub blather {
    print @_;
}

do blather("ok 9\n","ok 10\n");
@x = ("ok 11\n", "ok 12\n");
@y = ("ok 14\n", "ok 15\n");
do blather(@x,"ok 13\n",@y);

unshift @INC, '.';

if (open(DO, ">$$.16")) {
    print DO "print qq{ok 16\n} if defined wantarray && not wantarray\n";
    close DO;
}

my $a = do "$$.16";

if (open(DO, ">$$.17")) {
    print DO "print qq{ok 17\n} if defined wantarray &&     wantarray\n";
    close DO;
}

my @a = do "$$.17";

if (open(DO, ">$$.18")) {
    print DO "print qq{ok 18\n} if not defined wantarray\n";
    close DO;
}

do "$$.18";

END {
    1 while unlink("$$.16", "$$.17", "$$.18");
}