summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1999-10-31 20:56:06 +0000
committerGurusamy Sarathy <gsar@cpan.org>1999-10-31 20:56:06 +0000
commit21735c0044d3e2c727b5eb3bf3614d73a1036366 (patch)
treee5c04d907afc785d5f482f9cbd7fe9d7e15e41e8
parent18708f5a7334d978ddf7562cb7f58e28bec6e4ed (diff)
downloadperl-21735c0044d3e2c727b5eb3bf3614d73a1036366.tar.gz
change#4502 was missing a file
p4raw-link: @4502 on //depot/perl: 18708f5a7334d978ddf7562cb7f58e28bec6e4ed p4raw-id: //depot/perl@4503
-rwxr-xr-xt/io/nargv.t63
1 files changed, 63 insertions, 0 deletions
diff --git a/t/io/nargv.t b/t/io/nargv.t
new file mode 100755
index 0000000000..f32e40d6ee
--- /dev/null
+++ b/t/io/nargv.t
@@ -0,0 +1,63 @@
+#!./perl
+
+print "1..5\n";
+
+my $j = 1;
+for $i ( 1,2,5,4,3 ) {
+ $file = mkfiles($i);
+ open(FH, "> $file") || die "can't create $file: $!";
+ print FH "not ok " . $j++ . "\n";
+ close(FH) || die "Can't close $file: $!";
+}
+
+
+{
+ local *ARGV;
+ local $^I = '.bak';
+ local $_;
+ @ARGV = mkfiles(1..3);
+ $n = 0;
+ while (<>) {
+ print STDOUT "# initial \@ARGV: [@ARGV]\n";
+ if ($n++ == 2) {
+ other();
+ }
+ show();
+ }
+}
+
+$^I = undef;
+@ARGV = mkfiles(1..3);
+$n = 0;
+while (<>) {
+ print STDOUT "#final \@ARGV: [@ARGV]\n";
+ if ($n++ == 2) {
+ other();
+ }
+ show();
+}
+
+sub show {
+ #warn "$ARGV: $_";
+ s/^not //;
+ print;
+}
+
+sub other {
+ print STDOUT "# Calling other\n";
+ local *ARGV;
+ local *ARGVOUT;
+ local $_;
+ @ARGV = mkfiles(5, 4);
+ while (<>) {
+ print STDOUT "# inner \@ARGV: [@ARGV]\n";
+ show();
+ }
+}
+
+sub mkfiles {
+ my @files = map { "scratch.$_" } @_;
+ return wantarray ? @files : $files[-1];
+}
+
+END { unlink map { ($_, "$_.bak") } mkfiles(1..5) }