use strict; use warnings; use Tk; my $sql = ""; my $mw = new MainWindow; my $top = $mw->Frame()->pack(-expand => 1, -fill => "both"); my $f1 = $top->Frame()->pack(-expand => 1, -fill => "x"); my $f2 = $top->Frame()->pack(-expand => 1, -fill => "both"); $f1->Label(-text => "SQL Statement")->pack(-side => "left"); $f1->Entry(-textvar => \$sql, -width => 64)->pack(-side => "left"); $f1->Button(-text => "SQL", -command => \&submit)->pack(-side => "right"); my $output = $mw->Text()->pack(-expand => 1, -fill => "both"); MainLoop(); sub submit { # Here, insert the code for submitting the query using $sql... my $results = ... $output->insert("end", $results); $output->see("end"); $mw->update(); #### TIED INTERFACE The Perl/Tk Text widget also has built-in TIEHANDLE methods for print and printf statements. This means you can print to file handles tied to a Text widget, and the tied methods automatically insert the print statement's arguments into the Text widget. For example: #!/usr/local/bin/perl -w use POSIX 'acos'; use Tk; use strict; my $mw = MainWindow->new; my $text = $mw->Text(qw/-width 40 -height 10/)->pack; tie *STDOUT, ref $text, $text; print "Hello Text World!\n"; printf "pi ~= %1.5f", acos(-1.0); MainLoop;