S_del_body is sufficiently small that inlining it is a space win.
[p5sagit/p5-mst-13.2.git] / t / io / nargv.t
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) }