ptksh - Perl/Tk script to provide a graphical user interface for testing Perl/Tk commands and scripts.
% ptksh ?scriptfile? ... version information ... ptksh> $b=$mw->Button(-text=>Hi,-command=>sub{print Hi}) ptksh> $b->pack ptksh> o $b ... list of options ... ptksh> help ... help information ... ptksh> exit %
ptksh is a perl/Tk shell to enter perl commands interactively. When
one starts ptksh a MainWindow is automatically created, along with a
ptksh command window. One can access the main window by typing commands
using the variable $mw
at the 'ptksh> ' prompt of the
command window.
ptksh supports command line editing and history. Just type <Up> at the command prompt to see a history list. The last 50 commands entered are saved, then reloaded into history list the next time you start ptksh.
ptksh supports some convenient commands for inspecting Tk widgets. See below.
To exit ptksh use: exit
.
ptksh is *not* a full symbolic debugger. To debug perl/Tk programs at a low level use the more powerful perl debugger. (Just enter ``O tk'' on debuggers command line to start the Tk eventloop.)
Press <Up> (the Up Arrow) in the perlwish window to obtain a gui-based history list. Press <Enter> on any history line to enter it into the perlwish window. Then hit return. So, for example, repeat last command is <Up><Enter><Enter>. You can quit the history window with <Escape>. NOTE: history is only saved if exit is graceful (i.e. by the exit command from the console or by quitting all main windowsΩ-NOT by interrupt).
ptksh provides some convenience function to make browsing in perl/Tk widget easier:
displays a short help summary.
Dumps recursively arguments to stdout. (see Data::Dumper). You must have <Data::Dumper> installed to support this feature. x was introduced for perl debugger compatibility.
appends |\n to each of it's arguments and prints it. If value is undef, '(undef)' is printed to stdout.
prints the option(s) of $widget
one on each
line. If no options are given all options of the widget are listed. See
Tk::options for more details on the format and contents of the returned
list.
Lists options of $widget
matching the regular
expression regexp.
If no argument is given it lists the modules loaded by the commands
you executed or since the last time you called u
. If
argument is the empty string lists all modules that are loaded by ptksh.
If argument is a string, ``text'' it tries to do a ``use
Tk::Text;''.
Ptksh compiles into package Tk::ptksh. Your code is eval'ed into package main. The coolness of this is that your eval code should not interfere with ptksh itself.
ptksh will accept multiline commands. Simply put a \ character immediately before the newline, and ptksh will continue your command onto the next line.
If you have a perl/Tk script that you want to do debugging on, try running the command
ptksh> do myscript; -- or (at shell command prompt) -- % ptksh myscript
Then use the perl/Tk commands to try out different operations on your script.
Looks for your .ptksh_history in the directory specified by the
$HOME
environment variable ($HOMEPATH on Win32
systems).
If found in current directory it is read in an evaluated after the
mainwindow $mw
is created. .ptksh_init
can contain any valid perl code.
Contains the last 50 lines entered in ptksh session(s).
It is best not to use my in the commands you type into ptksh. For
example my $v
will make $v
local just to the
command or commands entered until <Return> is pressed. For a
related reason, there are no file-scopy my variables in the ptksh code
itself (else the user might trounce on them by accident).
Tk::MainLoop function interactively entered or sourced in a init or script file will block ptksh.
Tk perldebug
VERSION 2.03
Mike Beller <beller@penvision.com>, Achim Bohnet <ach@mpe.mpg.de>
Copyright (c) 1996 - 1998 Achim Bohnet and Mike Beller. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.