in reply to Re: (bbfu) (tied handles) Re: Redirect dos console output to a widget
in thread Redirect dos console output to a widget
Um... It, uh, half works. :-)
#!/usr/bin/perl use Tk; $mw = MainWindow->new(-name => 'Test', -title => 'Test'); $text = $mw->Text(); $text->pack(); tie *STDOUT, 'Text::Handle', $text; tie *STDERR, 'Text::Handle', $text; print "Hello\n"; print STDERR "Hi\n"; warn "Doesn't work! :(\n"; MainLoop; package Text::Handle; use Tie::Handle; @ISA = qw/Tie::StdHandle/; sub TIEHANDLE { my $class = shift; my $widget = shift; return bless \$widget, $class; } sub PRINT { my $self = shift; $$self->insert('end', join('',@_)); }
Hrm. Looks like warn and die behave specially when it comes to STDERR. I can see good and bad points to that. :-/
It would be nice to have it more "push" oriented so that you didn't have to poll pipes (either non-blockingly, or in a seperate thread/process) but it looks like you're still going to need warn and die %SIG handlers. But that's why I wrote Tk::Carp ;-)
bbfu
Seasons don't fear The Reaper.
Nor do the wind, the sun, and the rain.
We can be like they are.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: (bbfu) Re2: (bbfu) (tied handles) Re: Redirect dos console output to a widget
by John M. Dlugosz (Monsignor) on Aug 24, 2001 at 02:40 UTC | |
by bbfu (Curate) on Aug 24, 2001 at 03:10 UTC |