man pages section 1: User Commands

Exit Print View

Updated: July 2014

ptksh (1)


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


perl/Tk Documentation                                    PTKSH(1)

     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
     automaticly 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

  Debugging Support
     ptksh provides some convenience function to make browsing in
     perl/Tk widget easier:

Tk804.031            Last change: 2012-01-16                    1

perl/Tk Documentation                                    PTKSH(1)

     ?, or h
         displays a short help summary.

     d, or x ?args, ...?
         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.

     p ?arg, ...?
         appends "|\n" to each of it's arguments and prints it.
         If value is undef, '(undef)' is printed to stdout.

     o $widget ?-option ...?
         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.

     o $widget /regexp/
         Lists options of $widget matching the regular expression

     u ?class?
         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

     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.

  Multiline Commands
     ptksh will accept multiline commands.  Simply put a "\"
     character immediately before the newline, and ptksh will
     continue your command onto the next line.

  Source File Support
     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) --

Tk804.031            Last change: 2012-01-16                    2

perl/Tk Documentation                                    PTKSH(1)

       % 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.

     See attributes(5) for descriptions of the following

     |Availability   | library/perl5/perl-tk-512 |
     |Stability      | Volatile                  |
     Tk perldebug

     VERSION 2.03

     Mike Beller <>, Achim Bohnet

Tk804.031            Last change: 2012-01-16                    3

perl/Tk Documentation                                    PTKSH(1)

     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.

     This software was built from source available at  The original
     community source was downloaded from

     Further information about this software can be found on the
     open source community website at

Tk804.031            Last change: 2012-01-16                    4