gator456 has asked for the wisdom of the Perl Monks concerning the following question:
Is there any suggested read I should be looking at instead of all these questions?
In the example that zentara gave me (listed at the end), you have to hit the execute button for data to go from the entry box to the UNIX program. Is it possible for the data in the entry box to be process when a < CR > is hit instead of clicking on the 'Execute' button?
#!/usr/bin/perl use warnings; use strict; use Tk; use IPC::Open3; require Tk::ROText; $|=1; my $mw = new MainWindow; my $entry=$mw->Entry(-width => 80)->pack; $mw->Button(-text => 'Execute', -command => \&send_to_shell)->pack; my $textwin =$mw->Scrolled('ROText', -width => 80, -bg =>'white', -height => 24, )->pack; $textwin->tagConfigure( 'err', -foreground => 'red' ); my $pid = open3( \*IN, \*OUT, \*ERR, '/bin/bash' ) or warn "$!\n"; $mw->fileevent( \*OUT, readable => \&read_stdout ); $mw->fileevent( \*ERR, readable => \&read_stderr ); $entry->focus; MainLoop; sub read_stdout { if( sysread( OUT, my $buffer, 1024 ) > 0 ){ $textwin->insert( 'end', $buffer ); $textwin->see('end'); } } sub read_stderr { if( sysread(ERR, my $buffer, 1024 ) > 0 ){ $textwin->insert( 'end', $buffer, 'err' ); $textwin->see('end'); } } sub send_to_shell { my $cmd= $entry->get(); print IN "$cmd\n"; $entry->delete(0,'end'); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Another Perl/Tk Unix Question
by graff (Chancellor) on May 31, 2008 at 15:53 UTC | |
|
Re: Another Perl/Tk Unix Question
by pc88mxer (Vicar) on May 31, 2008 at 15:58 UTC | |
|
Re: Another Perl/Tk Unix Question
by gator456 (Novice) on May 31, 2008 at 22:18 UTC |