Commit | Line | Data |
---|---|---|
21735c00 GS |
1 | #!./perl |
2 | ||
3 | print "1..5\n"; | |
4 | ||
5 | my $j = 1; | |
6 | for $i ( 1,2,5,4,3 ) { | |
7 | $file = mkfiles($i); | |
8 | open(FH, "> $file") || die "can't create $file: $!"; | |
9 | print FH "not ok " . $j++ . "\n"; | |
10 | close(FH) || die "Can't close $file: $!"; | |
11 | } | |
12 | ||
13 | ||
14 | { | |
15 | local *ARGV; | |
16 | local $^I = '.bak'; | |
17 | local $_; | |
18 | @ARGV = mkfiles(1..3); | |
19 | $n = 0; | |
20 | while (<>) { | |
21 | print STDOUT "# initial \@ARGV: [@ARGV]\n"; | |
22 | if ($n++ == 2) { | |
23 | other(); | |
24 | } | |
25 | show(); | |
26 | } | |
27 | } | |
28 | ||
29 | $^I = undef; | |
30 | @ARGV = mkfiles(1..3); | |
31 | $n = 0; | |
32 | while (<>) { | |
33 | print STDOUT "#final \@ARGV: [@ARGV]\n"; | |
34 | if ($n++ == 2) { | |
35 | other(); | |
36 | } | |
37 | show(); | |
38 | } | |
39 | ||
40 | sub show { | |
41 | #warn "$ARGV: $_"; | |
42 | s/^not //; | |
43 | print; | |
44 | } | |
45 | ||
46 | sub other { | |
47 | print STDOUT "# Calling other\n"; | |
48 | local *ARGV; | |
49 | local *ARGVOUT; | |
50 | local $_; | |
51 | @ARGV = mkfiles(5, 4); | |
52 | while (<>) { | |
53 | print STDOUT "# inner \@ARGV: [@ARGV]\n"; | |
54 | show(); | |
55 | } | |
56 | } | |
57 | ||
58 | sub mkfiles { | |
3e0057ef | 59 | my @files = map { "scratch$_" } @_; |
21735c00 GS |
60 | return wantarray ? @files : $files[-1]; |
61 | } | |
62 | ||
63 | END { unlink map { ($_, "$_.bak") } mkfiles(1..5) } |