Commit | Line | Data |
21735c00 |
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 |
60 | return wantarray ? @files : $files[-1]; |
61 | } |
62 | |
63 | END { unlink map { ($_, "$_.bak") } mkfiles(1..5) } |