home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / t / io / nargv.t < prev    next >
Text File  |  1999-12-07  |  1KB  |  64 lines

  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) }
  64.