1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#!/usr/local/bin/perl -w
require 5.001;
use IO::Handle;
use Tk;
{package WrapMain;
sub new
{
my $class = shift;
my $mw = $::mw;
$mw->configure(@_) if @_;
@MainWindow::ISA = 'Tk::MainWindow';
return $mw;
}
}
@MainWindow::ISA = 'WrapMain';
$mw = $top = Tk::MainWindow->new;
$mw->title('tkpsh');
$top->iconname('tkpsh');
if (@ARGV)
{
local @Tk::EXPORT;
do $ARGV[0];
}
autoflush STDOUT 1;
$mw->fileevent(STDIN,'readable',\&doline);
sub doline
{
my $line = <STDIN>;
if (!defined $line)
{
$mw->fileevent(STDIN,'readable','');
$mw->destroy;
}
else
{
if ($line =~ /^p\s(.*)$/)
{
$line = "print $1, \"!\\n\";";
}
eval $line;
print "$@\n" if $@;
print "tkpsh> ";
}
}
print "tkpsh> ";
MainLoop;
print "\n";
|