Line | |
---|
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 {
|
---|
59 | my @files = map { "scratch$_" } @_;
|
---|
60 | return wantarray ? @files : $files[-1];
|
---|
61 | }
|
---|
62 |
|
---|
63 | END { unlink map { ($_, "$_.bak") } mkfiles(1..5) }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.