PTKSH(1)
π PTKSH(1) β the perl/Tk doc page, but make it make sense
okay bestie, so this is ptksh(1) from the perl/Tk documentation and I'm gonna walk you through it like we're texting at 2am π«Ά because honestly? it's kind of iconic.
β¨ NAME β¨
ptksh β a Perl/Tk script that gives you a whole graphical user interface for testing Perl/Tk commands and scripts. it's giving "interactive playground" and we're obsessed π
πΈ SYNOPSIS πΈ
% 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
%
like, literally just type ptksh and go off π
(optionally with a scriptfile, but more on that later).
π¦ DESCRIPTION π¦
So ptksh is a perl/Tk shell where you can enter perl commands interactively β the way that it's literally a live chat with your interpreter, no cap β¨
When you start ptksh, a MainWindow gets created automatically, and you also get a ptksh command window. You can reach the main window by typing commands at the ptksh> prompt in the command window, using the variable $mw π
ptksh supports command line editing and history β press <Up> at the command prompt to pull up a history list. The last 50 commands you entered are saved, then reloaded into the history list the next time you start ptksh. persistence! slay π
ptksh also has some convenient commands for inspecting Tk widgets β those are below, keep reading bestie.
To exit ptksh use: exit.
π¨ Real talk:ptkshis *not* a full symbolic debugger. If you wanna debug perl/Tk programs at a low level, use the more powerful perl debugger instead. (Just enterO tkon the debugger's command line to start the Tk eventloop.) iykyk π
π₯ FEATURES π₯
π History
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, repeating the last command is UpEnterEnter β¨ 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). so pls don't rage-quit, your history is on the line π
π§ Debugging Support
ptksh provides some convenience function to make browsing in perl/Tk widget easier β here's the whole menu, no gatekeeping:
?, orhβ displays a short help summary.d, orx?args, ...? β Dumps recursively arguments to stdout. (seeData::Dumper). You must have <Data::Dumper> installed to support this feature.
x was introduced for perl debugger compatibility. iykyk π
p?arg, ...? β appends"|\n"to each of it's arguments and prints it. If value is undef,'(undef)'is printed to stdout. not the dramaticundefmoment we wanted but okay π«o $widget?-option ...? β prints the option(s) of$widgetone on each line. If no options are given, all options of the widget are listed. SeeTk::optionsfor more details on the format and contents of the returned list.o $widget/regexp/β Lists options of$widgetmatching the regular expression regexp. regex girlies rise πu?class? β okay so this one has three moods:- 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, it lists all modules that are loaded by
ptksh. - If argument is a string,
text, it tries to do ause Tk::Text;. highkey useful π
- If no argument is given, it lists the modules loaded by the commands you executed or since the last time you called
π Packages
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. isolation is self-care, periodt π
β 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. the way that it just works π¦
π 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 the shell command prompt) --
% ptksh myscript
Then use the perl/Tk commands to try out different operations on your script. main character energy fr fr π
π ENVIRONMENT π
Looks for your .ptksh_history in the directory specified by the $HOME environment variable ($HOMEPATH on Win32 systems). know your roots bestie π
πΈ FILES πΈ
.ptksh_initβ If found in the current directory it is read in an evaluated after the mainwindow$mwis created..ptksh_initcan contain any valid perl code. cute little startup ritual β¨~/.ptksh_historyβ Contains the last 50 lines entered inptkshsession(s). it's your diary but for commands π
π PITFALLS π
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. so like... your variable just evaporates π
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). protective king behavior honestly π
π BUGS π
Tk::MainLoop function interactively entered, or sourced in an init or script file, will block ptksh. yes it will just sit there. do not pass go π«
π¦ SEE ALSO π¦
Tk perldebug
π VERSION π
VERSION 2.03
π«Ά AUTHORS π«Ά
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.
and that's the whole page bestie π this doc shipped as Tk804.036, dated 2024-01-12 β so like, yes, it's a lil vintage, but it ate and left no crumbs β¨π
π¦ where this page comes from
- opensuse-leap 16.0: perl-Tk 804.036-160000.2.2 Β· (Artistic-1.0 OR GPL-1.0-or-later) AND Zlib
- opensuse-leap 16.0: perl-Tk 804.036-160000.2.2 Β· (Artistic-1.0 OR GPL-1.0-or-later) AND Zlib
- opensuse-leap 16.0: perl-Tk 804.036-160000.2.2 Β· (Artistic-1.0 OR GPL-1.0-or-later) AND Zlib
- opensuse-leap 16.0: perl-Tk 804.036-160000.2.2 Β· (Artistic-1.0 OR GPL-1.0-or-later) AND Zlib
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms