I/O Re-direction, local( *STDOUT)

I/O redirection works basically by localizing typeglobs that describe file handles. In the first example STDOUT is redirected to an output file:

sub ...
{
  local( *STDOUT); 
  open( F, '>/tmp/x');
  *STDOUT = *F; 
  print "hello world \n"; 
  close(F);
}

The following code shows how STDOUT is redirected to a text widget (by J. Medved):

 
my $w_text = $top->Scrolled( 'Text', 
                             -relief => 'sunken',
                             -setgrid => 'true',
                             -height => '30'
                             -scrollbars => 'e')->pack();
sub ... 
{

  local( *STDOUT);
  tie( *STDOUT, 'Tk::Text', $w_text);
		    
  open(NET, "ls -al |");
  while (<NET>) 
  {
      print "$_";
  }
  close( NET);
}