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

  1. #!./perl
  2.  
  3. BEGIN {
  4.     unless(grep /blib/, @INC) {
  5.     chdir 't' if -d 't';
  6.     unshift @INC, '../lib' if -d '../lib';
  7.     }
  8. }
  9.  
  10. use Config;
  11.  
  12. BEGIN {
  13.     if(-d "lib" && -f "TEST") {
  14.         if ($Config{'extensions'} !~ /\bIO\b/ && $^O ne 'VMS') {
  15.         print "1..0\n";
  16.         exit 0;
  17.         }
  18.     }
  19. }
  20.  
  21. use IO::Handle;
  22. use IO::File;
  23.  
  24. select(STDERR); $| = 1;
  25. select(STDOUT); $| = 1;
  26.  
  27. print "1..6\n";
  28.  
  29. print "ok 1\n";
  30.  
  31. $dupout = IO::Handle->new->fdopen( \*STDOUT ,"w");
  32. $duperr = IO::Handle->new->fdopen( \*STDERR ,"w");
  33.  
  34. $stdout = \*STDOUT; bless $stdout, "IO::File"; # "IO::Handle";
  35. $stderr = \*STDERR; bless $stderr, "IO::Handle";
  36.  
  37. $stdout->open( "Io.dup","w") || die "Can't open stdout";
  38. $stderr->fdopen($stdout,"w");
  39.  
  40. print $stdout "ok 2\n";
  41. print $stderr "ok 3\n";
  42. if ($^O eq 'MSWin32') {
  43.     print `echo ok 4`;
  44.     print `echo ok 5 1>&2`; # does this *really* work?
  45. }
  46. else {
  47.     system 'echo ok 4';
  48.     system 'echo ok 5 1>&2';
  49. }
  50.  
  51. $stderr->close;
  52. $stdout->close;
  53.  
  54. $stdout->fdopen($dupout,"w");
  55. $stderr->fdopen($duperr,"w");
  56.  
  57. if ($^O eq 'MSWin32') { print `type Io.dup` }
  58. else                  { system 'cat Io.dup' }
  59. unlink 'Io.dup';
  60.  
  61. print STDOUT "ok 6\n";
  62.