Perl/Tk常见问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
及解答
原文
少年中国说原文俱舍论原文大医精诚原文注音大学原文和译文对照归藏易原文
出自:comp.lang.perl.tk FAQ
原作者Cameron Laird
其主要的目的是为了解答comp.lang.perl.tk 新闻组和 ptk mailing list 邮件列表中的常见的和基本的问题。
译者:Jester@PerlChina
几点说明:
1. 这是一个纯粹的翻译,内容上我将尽量“忠实原著”,但是由于水平有限(老实说,我从来没有翻译过东西……),所以难免有些问题,请大家谅解。同时,建议有能力的同志直接阅读原文为好(我会一起贴出来的)。
2. 因为时间上的关系,我只能尽量保证一日一贴,所以如果有朋友觉得不够“过瘾”,建议直接看原文。
3. 在翻译的问题上,我实在没有经验,所以可能只能保证意译,不能确保原文每句都保留……
4. 如果有其它人愿意来共同翻译,我将热烈欢迎!
1. 什么是Perl/Tk?
Perl/Tk(简称pTk或ptk)提供了一些模块和代码,其目的是把易用的“Tk8窗口组件工具箱”(widget toolkit)结合到具有强大的文本处理、动态存储、输入/输出和面向对象能力的Perl5中。换句话说,它是用于编写“窗口组件”(widget)等图形用户界面(GUI)程序的一种解释脚本语言。(窗口组件的例子很多,并非一定用Perl/Tk编写,例如xterm,xclock以及大部分的网络浏览器等等,这些都是具有图形用户界面的程序。)
现有版本的Perl/Tk主要基于Tk8.0,而这个窗口组件工具箱最初是与Tcl脚本语言(即“工具命令语言”,Tool command language)的一部分。但是,使用Perl/Tk并不要求你熟悉Tcl语言,并且它的安装也不需要依靠除了Perl/Tk安装包之外的任何Tcl的代码。Perl/Tk完全使用Perl5的语法、文法和数据结构。
Perl/Tk的原代码最初是由英格兰北安普敦Texas Instruments的Nick Ing-Simmons编写的,它可以和Larry Wall最新版本的Perl一起工作。目前的
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
是到Perl6时,改进为Tk8.4。
pTk的代码本质上是一个可以被外部调用的Tk工具箱,也就是说它重写了Tk8.0的代码从而使其可以被更加方便从外部链接和调用(尤其是被Perl)。这样,ptk就可以被Perl5简单的通过Tk.pm这样的Perl模块来调用了。但是,“ptk”并不一定局限于“Perl工具箱”(Perl Tk),而更好的是被解释为“便携式的工具箱”(portable Tk),也就是说它可以为其它很多语言提供了Tk工具包。因为,实际上pTk代码的目标是要为Perl、Tcl、LISP、C++、python等多种语言提供可用的库(library),而只是“碰巧”目前的工作主要是集中在Perl语言方面而已。
关于历史问题的说明:“ptk”在大约11:30 EST 4 May 1995以前曾被称为“ntk”。
Perl/Tk语言本身是可以按照Perl5的模块机制进行扩展的,并且实际上很多合成的窗口组件和特别的扩展组件已经被做成了Perl模块了。
2. Perl/Tk和Tkperl有什么区别?
TkPerl最初是牛津大学的Malcolm Beattie为了把Tk X工具箱结合到Perl中去,而为Perl4开发的一个的包(package)的名字。(但是他现在已经不再提供支持了……)
从那以后Malconlm也为Perl5做了一个Tcl的模块叫做Tcl::Tk,这个模块允许在Perl脚本中直接使用Tcl语言(这也就意味着你必须同时懂得这两种语言!)。如果你实际是对那个模块感兴趣的话,可以查阅相关的资料。Malcolm Beattie为Perl做的Tcl/Tk扩展模块在CPAN站点的authors/id/MICB/目录中,文件名是Tcl-b#.tar.gz和TclTk-b#.tar.gz。
Perl/Tk(或ptk)作为我们这个“常见问题”文档的主题,在有些情况下也会被称为“tkperl”。但是,作者Nick Ing-Simmons还是希望用“Perl/Tk”作为这个模块的名字,而把“pTk”或是“ptk”作为简称,因为这个简称可以同时暗示出这个模块一些技术特点:可扩展性——也就是说这里的“p”可以理解为是“便携式的”(portable)或者“纯粹的”(pure)。(但是请不要和芬兰赫尔辛基技术大学的portTk及Brian Warkentine的Rivet混淆!)本文档的代码主要是集中在Perl/Tk,但是也会涉及pTk或ptk。
警告:不要试图在同一个Perl环境中安装Perl/Tk和Tcl/Tkperl,因为这两个模块的名字是有重叠的。特别是Tcl::Tk模块也包含在一个叫Tk.pm的文件中,因此如下的语句:
use Tk;
将可能会令你的Perl解释器不知所措(译者注:使用Perl/Tk模块也需要用同样的语句)。如果你必须同时安装这两个模块,那么只能是在你的系统中同时安装两个相互独立的Perl环境,然后分别安装相应的模块,并且根据需要编写你的脚本。(这样做并不容易哟!)
关于Tkperl和Perl/Tk之间的区别,Perl/Tk包中的Tcl-perl.pod文件里有更加详细的比较说明。(具体位置参阅下面问题的内容)
最后,必须说明的是,如果你是静态的而不是动态的构建你的Perl/Tk,那么这将产生出一个新的名叫“tkperl”的Perl解释器。(这下晕了吧?:-P)
3. 编译安装Perl/Tk是否需要Tcl/Tk?
简短的回答:完全不用!因为Perl/Tk是完全不依赖Tcl/Tk的。
更具体的回答:如果要从源代码来编译安装Perl/Tk,你需要1)较新版本的Perl;2)Perl/Tk源代码包;3)图形用户界面库,例如Xlib,显示管理器(Presentation Manager)或者Win32;4)C或C++的编译器;5)make工具。偶尔,Perl/Tk也会发布针对一些系统平台的二进制版本。
如果你确实想在你的系统上安装Perl/Tk,那么你可以参考下面的这个文档:
http://w4.lns.cornell.edu/~pvhp/ptk/ptkPORT.html
这里对上面提到各个条件都做了更加详细的讨论(重点是Xlib)。
4. 哪里有Perl/Tk?
源代码
最新的稳定版本和测试版都可以从CPAN的modules/by-authors/Nick_Ing-Simmons/目录中下载。如果是由源代码编译安装,那么你需要有Perl环境(最好是Perl 5.005或者更高)、一个较新版本的make编译工具和Tk包。所有的这些(同时包括一些其它的相关的模块)都可以从CPAN的ftp站点下载。关于CPAN(综合Perl档案网络,the Comprehensive Perl Archive Network)的问题我们将在下一个问题中具体讨论。
最初由Gurusamy Sarathy发起的为WinNT、Win95/98和Win2000提供二进制版本(binary distribution)工作现在已经被ActiveState公司接管了。如果你想在ActivePerl中使用Tk,你可以这样做:
1. 下载并安装1.1(或更高)版本的Windows Installer(作者发现在WinNT系统中安装它无须重启);
2. 下载ActivePerl 618安装包;
3. 在资源管理器中运行上面下载的安装包,这样就安装了ActivePerl;
4. 在命令行中输入:ppm install Tk;
5. 此时你可以在命令行里输入:perl –e “use Tk”,如果一切顺利,说明你已经可以用Perl/Tk了。
Jon Bjornastad给出了更详细的过程说明,其中有些对于使用618之前的版本的ActivePerl的用户可能特别有用。
(因为我们的下一个问题是重点讨论CPAN的,所以这个回答的下面部分我们将给出一些非CPAN的资源和一些历史资源。)
Tk-b8:因为Tk-b8工具包和已经被广泛使用的Perl(5.001m)相兼容,所以它一直被保留在CPAN上。
二进制版本
为Linux平台预编译好的Perl5.001m和Tk-b8可以从下面的站点下载:
澳大利亚(请在业余时间下载,并保持耐心)
ftp://syd.dit.csiro.au/pub/perl5/local/perl5.001m+Tk-b8-Linux-ELF.tar.gz
它将释放到/usr/local目录中。你的系统需要有ELF X11的库并且保证其运行。
Brookhaven实验室的Thomas Schlagel和Alan Stange为很多Unix平台的系统提供了老版本的Perl5和Tk-b6:
美国http://pubweb.bnl.gov/~ptk/
实物(大部分是源代码)
(译者注:因为其价格一般都太贵,对国人而言不太适用,所以就不译了……有兴趣的自己看吧:P)
5. CPAN是什么?在哪里?
"CPAN" = 综合Perl档案网络,它是一个全球范围的匿名ftp站点网络,专门收集与Perl相关的内容(不要与CTAN或CSPAN混淆)。其中对于一个Perl/Tk的程序员来说可能会感兴趣的文件有(注:以下所提到文件位置均对任何CPAN的ftp站点有效):
最新版本的Tk都放在modules/by-authors/Nick_Ing-Simmons/目录中。
最新的正式发布的Perl版本都放在src目录中,文件名为latest.tar.gz。
在modules/by-authors/Gurusamy_Sarathy/目录中有较新版本的Perl+Tk+很多其它模块的组合发布包。
如果你需要一些比“最新正式版本”旧的或更新的Perl,可以在src/5.0/目录中找找。
另外这里还有很多可以和Tk一起使用的模块,其中包括:
Alan Scheinine的SelFile.pm在modules/by-authors/Alan_Scheinine/目录中。
由Graham Barr最初编写的一些窗口组件可以通过在CPAN上查找“Tk-GBARR”而得到。
Guy Decoux的BLT_Table布局管理器在modules/by-authors/id/GUYDX/目录中。
Ilya Zakharevich的eText插件(用于替代Text组件)在modules/by-authors/id/ILYAZ/etext/目录中。
Brent B. Power的Tk-FileDialog和Tk-WaitBox在modules/by-authors/id/BPOWERS/目录中。
有些爱好者利用其它的Perl模块编写了一些有用的Perl/Tk脚本(如新闻阅读器和网络浏览器等等)。其中你应该考虑安装的包括:
要运行ptknews脚本,你需要Mailtools模块中的Mail/Internet.pm文件,此模块在modules/by-authors/id/GBARR/目录中,这里同时还有最新的libnet-*模块。
编译安装较新版本的Perl/Tk要求你的系统已经安装有URI::URL和HTML::Parse模块。这些模块都是来自modules/by-authors/id/GAAS/目录中的libwww-perl-*.tar.gz包。
CPAN上还有一些文档:
关于Perl的分类的文档都在doc目录中。
在modules/by-authors/id/PVHP/目录中有一些Perl/Tk的“附加”文档(例如常见问题)。(关于Perl/Tk的正式文档,是Tk的安装包里面的Tk/doc/*.htm)
综合信息:
大部分有关Perl/Tk的内容都被同时链接在modules/by-module/Tk/目录中。
Tim Bunce和Andreas Koenig制作的详细的模块列表可以帮助你解决诸如像“HTML::Parse是哪个模块的一部分?”这一类的问题。这个列表在modules/00modlist.long.html目录中,并且会被定期的贴在新闻组里。
下面是52个CPAN的站点和目录(后面是对应的IP)
更新时间:Sun Dec 8 17:12:55 EST 1996
非洲
南非
ftp://ftp.is.co.za/programming/perl/CPAN/ 196.4.160.12
亚洲
香港
ftp://ftp.hkstar.com/pub/CPAN/ 202.82.7.4
日本
ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/ 150.65.7.5
ftp://ftp.lab.kdd.co.jp/lang/perl/CPAN/ 192.26.91.6
韩国
ftp://ftp.nuri.net/pub/CPAN/ 203.255.112.6
台湾
ftp://dongpo.math.ncu.edu.tw/perl/CPAN/ 140.115.25.3
澳洲
澳大利亚
ftp://coombs.anu.edu.au/pub/perl/CPAN/ 150.203.76.2
ftp://ftp.mame.mu.oz.au/pub/perl/CPAN/ 128.250.209.2
新西兰
ftp://ftp.tekotago.ac.nz/pub/perl/CPAN/ 202.49.6.24
欧洲
奥地利
ftp://ftp.tuwien.ac.at/pub/languages/perl/CPAN/ 128.130.34.160
比利时
ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/ 134.58.127.2
捷克
ftp://sunsite.mff.cuni.cz/Languages/Perl/CPAN/ 194.50.23.220
丹麦
ftp://sunsite.auc.dk/pub/languages/perl/CPAN/ 130.225.51.30
芬兰
ftp://ftp.funet.fi/pub/languages/perl/CPAN/ 128.214.248.6
法国
ftp://ftp.pasteur.fr/pub/computing/unix/perl/CPAN/ 157.99.64.12
德国
ftp://ftp.leo.org/pub/comp/programming/languages/perl/CPAN/ 131.159.0.252
ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/ 134.147.32.42
ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/ 134.100.32.54
希腊
ftp://ftp.ntua.gr/pub/lang/perl/
匈牙利
ftp://ftp.kfki.hu/pub/packages/perl/CPAN/ 148.6.0.5
意大利
ftp://cis.utovrm.it/CPAN/ 160.80.22.17
荷兰
ftp://ftp.cs.ruu.nl/pub/PERL/CPAN/ 131.211.80.17
ftp://ftp.EU.net/packages/cpan/ 134.222.91.7
挪威
ftp://ftp.uit.no/pub/languages/perl/cpan/ 129.242.4.34
波兰
ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/ 149.156.132.152
ftp://sunsite.icm.edu.pl/pub/CPAN/ 148.81.209.3
葡萄牙
ftp://ftp.ci.uminho.pt/pub/lang/perl/ 193.136.16.247
ftp://ftp.telepac.pt/pub/CPAN/ 194.65.5.98
俄罗斯
ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/ 158.250.29.1
斯洛文尼亚
ftp://ftp.arnes.si/software/perl/CPAN/ 193.2.1.72
西班牙
ftp://ftp.etse.urv.es/pub/mirror/perl/ 193.144.20.6
ftp://ftp.rediris.es/mirror/CPAN/ 130.206.1.2
瑞典
ftp://ftp.sunet.se/pub/lang/perl/CPAN/ 130.238.253.4
瑞士
ftp://sunsite.cnlab-switch.ch/mirror/CPAN/ 193.5.24.1
英国
ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/ 158.152.1.44
ftp://sunsite.doc.ic.ac.uk/packages/CPAN/ 193.63.255.1
ftp://unix.hensa.ac.uk/mirrors/perl-CPAN/ 129.12.200.129
北美
安大略
ftp://ftp.utilis.com/public/CPAN/ 207.34.209.49
ftp://enterprise.ic.gc.ca/pub/perl/CPAN/ 192.197.182.100
加州
ftp://ftp.digital.com/pub/plan/perl/CPAN/ 204.123.2.4
ftp://ftp.cdrom.com/pub/perl/CPAN/ 165.113.58.253
科罗拉多
ftp://ftp.cs.colorado.edu/pub/perl/CPAN/ 128.138.243.20
佛罗里达
ftp://ftp.cis.ufl.edu/pub/perl/CPAN/ 128.227.205.206
伊利诺伊
ftp://uiarchive.cso.uiuc.edu/pub/lang/perl/CPAN/ 128.174.5.14
麻省
ftp://ftp.iguide.com/pub/mirrors/packages/perl/CPAN/ 206.15.105.99
纽约
ftp://ftp.rge.com/pub/languages/perl/ 157.225.178.12
北卡罗来纳
ftp://ftp.duke.edu/pub/perl/ 152.3.233.7
俄克拉荷马
ftp://ftp.ou.edu/mirrors/CPAN/ 129.15.2.40
俄勒冈
ftp://ftp.orst.edu/pub/packages/CPAN/ 128.193.4.12
德克萨斯
ftp://ftp.sedl.org/pub/mirrors/CPAN/ 198.213.9.194
ftp://ftp.metronet.com/pub/perl/ 192.245.137.6
南美
智利
ftp://sunsite.dcc.uchile.cl/pub/Lang/perl/CPAN/ 146.83.5.204
对于拥有多协议浏览器的人,还可以访问Tom Christiansen的CPANmultiplexer,这里Tk的URL会写成如下的格式:
http://perl.com/cgi-bin/cpan_mod?module=Tk
HYPERLINK "http://perl.com/cgi-bin/cpan_mod?module=Tk&readme=1"
http://perl.com/cgi-bin/cpan_mod?module=Tk&readme=1
有些CPAN的站点可以为哪些没有解压缩工具(如gunzip)的用户提供已解压的版本。例如,在ufl的站点,你可以用如下的命令来下载一个解压后的Tk包:
ftp> get Tk400.202.tar
有些CPAN站点是可以用HTTP协议访问的,如:
http://www.cdrom.com/pub/perl/CPAN/
http://www.metronet.com/perlinfo/
如果你已经安装了适当的CPAN和FTP模块(是的,CPAN上有一个用来获取CPAN模块的模块名字就叫CPAN!),你就可以用下面的一行命令来获取并安装一个模块:
perl –MCPAN –e ‘install “Tk”’
想了解CPAN的情况,你可以发e-mail给CPAN的管理员。如果你发现了一些CPAN上没有的Perl资源(请先确认你已经检查了indices目录中的内容!),请告诉CPAN的管理员。如果你有一些自己的模块、脚本或文档想要送到CPAN,请先阅读authors/00upload.howto的文件然后再与管理员联系。
6. 如何编译安装?
如果你不是用的二进制版本,那么一般说来,编译安装Perl/Tk需要:
1. 已经编译安装好的Perl环境(需要C的编译器)。根据你所选择的Tk的版本,你可能会需要不同版本的Perl环境。
2. C编译器(为了编译Tk本身的代码)。
3. 图形窗口的链接库Xlib(.o,.so,.a等等)。
Perl/Tk已经被用很多不同的cc编译器上成功的安装(包括免费的GNU的gcc编译器)。同时一个make工具会对安装非常有帮助。
编译Perl的Tk模块的一步一步的命令大致如下(动态链接版本):
1. make install (先安装适当版本的Perl)
2. uninstall (卸载原有的旧版本的Tk)
3. gunzip –c Tk400.*.tar.gz | tar xvf - (tar的参数在如SysV等的系统上可能会不同)
4. cd Tk400.*
5. 阅读INSTALL文件
6. perl Makefile.PL
7. make
8. make test
9. make install
对于“静态链接”版本的安装,你应该在执行完make之后而执行make test之前执行“make tkperl”。
请注意,在上面的步骤中我们没有提到大量的相关文档和在那些子目录中的例子。我们强烈推荐你仔细的阅读安装目录里的docs,examples等内容,并且把它们保留在一个安全的地方。你也可以考虑把它们打包安装到一个网络服务器的目录中去。
Kenneth Albanowski提供了一个相对简单的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
用来测试是否你系统上的Perl允许动态链接。如果下面的任何一个命令没有显示“dl_none.xs”,那么你应该已经安装的动态链接的Perl:
perl –V:dlsrc
或
perl –Mconfig –e ‘print $Config{dlsrc},”\n”’
或
perl –e ‘use Config; print $Config{dlsrc},”\n”’
(感谢Paul Lussier的更正!)。
下面是关于上面给出的步骤的一些更详细的讨论:
· 安装Perl: 应该先阅读你获取到Perl/Tk包中的说明文件(Tk*/README等等)来了解它所要求的Perl的版本。相应的Perl代码可以从CPAN得到,其实际的安装说明在perl*.tar.gz的包里面。(关于Perl的配置和安装等问题已经超出来我们这个FAQ的范围,详情请参阅Perl FAQ文件)
· 在Perl的安装目录以外解开Perl/Tk的包
gunzip Tk400.*.tar.gz
tar –xvf Tk400.*.tar
(注意:你的tar程序也许会不认-xvf选项。另外,解开以后的目录我们在下面的文档中将称之为“Tk安装目录”。)
· 仔细阅读INSTALL文件
cd Tk400.*
pager INSTALL
注:这里的pager是指你用来阅读整个文本的工具,请务必仔细阅读此文档而不要简单跳过!
· 如果存在,请先清除所有原先安装的Perl/Tk!
如果你原来曾经安装使用过Tk,你可能需要再使用原来的Makfile文件执行如下:
make uninstall
make realclean
注:此操作应该在你解开新版本的包之前(另外,请注意这里make的uninstall属性相对比较新)。
· 让Perl按照你的系统情况产生一个Makefile文件
perl Makefile.PL
(注:关于此步骤地详细说明请参阅下面的部分)。
· 编译
make
(注:只有在做静态编译的时候才使用:make tkperl)
· 测试
make test
· 安装
make install
· 开始使用
basic_demo(译者注:建议直接使用perl basic_demo)
(注:请根据需要修改首行#!后面的内容,或指定/path/to/perl ./basic_demo)
(警告:如果你使用的是Tk-b9.01和perl5.002gamma,请把basic_demo中的use lib ./blib;行改成use lib qw(blib/arch blib/lib);)
· 把这些文档和例子保存到一个安全可用的地方
你可以使用tar,cp,mv,chmod等等一些命令来把Tk安装目录里的这些有用的辅助文件保存起来。
另外,在“perl Makefile.PL”的一步中,有时可能需要明确指明X11库或头文件的位置。例如:
perl Makefile.PL X11=/usr/local/X11R5
或者,可能你的X安装的头文件和库在其它不同的目录中:
perl Makefile.PL X11INC=/usr/local/share/X11R5/include \
X11LIB=/usr/local/arch/X11R5/lib
以上的所有步骤实际的成功与否实际主要依赖于你的系统。但是,最多的安装错误通常是由于没有使用最新版本的各种工具而造成的(例如C编译器、make等等)。特别是在你执行“perl Makefile.PL”前,先确定你调用的是哪里的perl(用which perl)以及它的版本(用perl -v)。如果必要的话,甚至可以给出你的Perl5解释器的全路径(因为,有些人在升级perl的时候并没有删除掉老的版本,所以要特别小心)。
如果你的安装仍有问题,阅读一下INSTALL文件、README文件和与你的系统对应的README文件(例如,README.AIX、README.OSF等等)。你可能也可以在下面的地址找到与你的系统对应的ptk的超文本档案文件:
http://www.rosat.mpe-garching.mpg.de/mailing-lists/ptk/
或
http://pubweb.bnl.gov/~ptk/
或
ftp://ftp.ccd.bnl.gov/pub/ptk/archives/
或者下面的任何一个地址:
http://www.rosat.mpe-garching.mpg.de/mailing-lists/Perl5-Porters/
http://www.hut.fi/~jhi/perl5-porters.html
如果你希望和其它人讨论你在安装Tk时遇到的问题,可以运行Tk安装目录中的myConfig脚本,并保存其输出结果(可能已经被保存在你的Tk安装目录中的myConfig.out文件中了)。同样的,运行perl安装目录中的myconfig脚本(或perl –V),并保存其结果。因为一般说来,在与别人讨论的时候,出示上面的任何一个(或全部)结果会非常有帮助的。
(译者注:原文下面的部分是一些在各种系统上发现的Tk安装中的问题,但是都已经比较老了,可能不太适用了,所以就不译了……累得不行了,偷点懒咯:P)
7. 哪里有Perl/Tk的文档?
其实,Tk模块的安装包中就带有大量的Perl/Tk文档,所以,可能你的系统上已经有很多相关的文档了。
更多的文档还在计划中:有些针对Perl/Tk的书正在创作过程中(译者注:可能有些书现在已经面世了,比如:Learning Perl/Tk,Mastering Perl/Tk等等)。同时一个关于Perl/Tk的期刊也在建设中,当然,还有一个逐步丰富的“常见问题”(就是你现在看到的这个文档)。
其它你可能会想要参考的文档资料大致可以分为Perl/Tk,Perl,Tcl/Tk和X几类:
Perl/Tk 专门文档
用户手册
伴随着Tk包的不断更新,各种各样的Perl/Tk的简易老式文档都被转换系统帮助文件的格式,并在你安装Perl/Tk的过程中(make install)同时被安装到了你的系统中。如果你已经安装了较新版本的Perl/Tk,你可以试试“man 3 Tk::Tk”命令(只对Unix系统)。如果不行,你最好找一下你的系统管理员简称一下MANPATH环境变量是否设置正确。
在你的Tk安装目录中应该有一个名为doc/的子目录,在那里有很多.htm的文件(在你使用了make install之后)。这些文件都是原始的Tcl/Tk的手册页(来自man*子目录),但是这些*.htm文件已经被转换成了Perl的语法,并且使用了从超文本的格式。你可以使用Perl/Tk的网络浏览器来在当前目录中阅读它们:
tkweb index.html
或者,你也可以把它们安装到一个web服务器的目录里,然后在网络上浏览它们。还有,你还可以在下面的网址浏览这些文档:
http://w4.lns.cornell.edu/~pvhp/ptk/doc/
新闻组
Perl/Tk的新闻组的名字是comp.lang.perl.tk,这个“常见问题”文档会被定期的张贴在这个新闻组里(就像其它的一些组一样)。这个新闻组和(或)ptk的邮件列表是张贴Perl/Tk的问题的最合适的地方——即使是非常简单的!(不过,有时回答会比较慢哟……()
nTk/pTk邮件列表
邮件列表是comp.lang.perl.tk新闻组的很好的补充。所有发到列表中的信息都会被转发到新闻组中(但不是所有新闻组中的帖子都会被转发到邮件列表中)。有些Perl/Tk的专家只能通过电子邮件和他们联系。
nTk/pTk邮件列表档案也是非常有用的资源,你可以通过下面的网址访问:
http://pubweb.bnl.gov/~ptk/
或者是通过ftp:
ftp://ftp.ccd.bnl.gov/pub/ptk/archives/
(都在美国)。你还可以在下面的网址中对另一个ptk的邮件列表的超文本档案中查找(感谢德国的Achim Bohnet写了一个CGI脚本):
http://www.rosat.mpe-garching.mpg.de/mailing-lists/ptk/
要从邮件列表中受到邮件,你必须事先订阅。订阅的
办法
鲁班奖评选办法下载鲁班奖评选办法下载鲁班奖评选办法下载企业年金办法下载企业年金办法下载
是发如下内容的电子邮件到majordomo@lists.stanford.edu:
subscribe ptk joe.user@somewhere (Joe D. User)
其中,你应该替换为自己的邮件地址和姓名。
(注:如果需要取消订阅ptk,你应该发送一个“unsubscribe ptk”的邮件到上面同样的信箱。但是,你必须用当初订阅时的帐户和电脑来完成取消订阅。特别需要注意的是,如果你是在以超文本格式看这个FAQ,因为各种浏览器的差别,你也许无法通过点击我们给出的mailto的超链接来取消订阅——如果你的浏览器关联的帐户或电脑与你订阅时的不同的话。感谢您的合作。)
演示程序
在安装完Tk以后,你可以检查并尝试运行你的Tk安装目录中的一些脚本。或者你也许会有兴趣测试一下已经安装的代码:
· perl5/site_perl/Tk/demos/或者perl5/site_perl/Tk/demos/widget_lib/目录(新版本的Tk)
· perl5/Tk/demos/或者perl5/Tk/demos/widget_lib/目录(旧版本,如Tk-b8)
要知道你的系统中安装的perl5目录的具体位置,可以在使用如下的perl命令(注意,这是在命令行提示符下使用的,不是在perl的脚本里面):
perl -e 'print join("\n",@INC,"");'
如果从上面的命令结果中没有perl5的目录,那么请用下面的命令来确定你确实已经安装,并正在使用perl5(这也是只在命令行中键入的):
perl -v
更多的pod和man文档
【前面已经提过,大量的Tcl/Tk的手册页已经由*roff格式转换成了html文档,并且就在你的Tk安装目录中的doc/子目录中。这些文档应该是Perl/Tk方面最权威和全面的参考资料。
这些Tk安装包中的pod文档就是Perl的简易老式文档的例子,这种格式是可读的(例如,你可以用more,cat或者less来查看它们,甚至直接打印)。很多(不是所有的)Perl/Tk的简易老式文档都是由*roff格式转换而来的,并且在Perl/Tk安装的过程中自动的被作为Perl的手册页装入。
如果你已经安装了新版本的Perl/Tk,你可以尝试使用如下的命令来获取Tk的帮助:
man 3 Tk::Tk (只对Unix系统可以)
如果这样不行的话,请使用下面的方法检查你系统的手册页搜索路径:
perl -MConfig -e 'print $Config{man1dir},"\n",$Config{man3dir},"\n"'
如果这样仍然不行,请向你的系统管理员咨询正确的MANPATH参数设置和所安装的Tk的版本。
原始的.pod文件(例如UserGuide.pod)可以使用tkpod超文本pod阅读器来查看,也可以先用那些各种各样的重格式化的Perl脚本处理后再阅读。这些程序包括pod2man,pod2text,pod2html,pod2latex等等(这些脚本都是跟随Perl一起安装的)。其它的格式转换程序还包括pod2texinfo,pod2fm,pod2pdf等等。如果你的系统中没有这些程序,可以到某个CPAN的站点去下载。
在命令行中可以使用类似(取决于你的系统)下面的命令:
tkpod site_perl/Tk/UserGuide.pod
或者,如果你喜欢Unix手册的风格:
pod2man perl5/Tk/UserGuide.pod | nroff –man | more
(注意,这里我们使用的是完整的路径,还有一种方法是先cd到文件所在的目录中,然后使用:
pod2man UserGuide.pod | nroff –man | more
另外,还有一个Perl的脚本可以直接帮你执行上面的命令,如下:
perldoc UserGuide
注意如果一个Perl的模块中包含了pod格式的文档说明,你也可以直接对它使用tkpod(或者perldoc),例如:
tkpod ColorEditor.pm
(请注意,不幸的是,并非所有的.pm模块文件都内嵌有pod文档说明。)
如果你找不到系统中的tkpod程序,而你又希望能有图形用户界面的阅读工具,可以使用下面的脚本(请先做适当的修改):
#!/usr/bin/perl
use Tk;
use Tk::Pod;
my $m = new MainWindow;
$m -> Pod(-file => 'ColorEditor.pm');
# or use command line path/filename:
# $m -> Pod(-file => $ARGV[0]);
MainLoop;
互联网上的Perl/Tk资源
互联网上的Perl/Tk手册页
http://pubweb.bnl.gov/~ptk/doc/index.html
http://w4.lns.cornell.edu/~pvhp/ptk/doc/
http://w4.lns.cornell.edu/~pvhp/ptk/pod/
Perl/Tk新闻组
comp.lang.perl.tk
Perl新闻组
comp.lang.perl.misc
comp.lang.perl.anounce
comp.lang.perl.modules
Tcl新闻组
comp.lang.tcl
comp.lang.tcl.announce
其它混杂的新闻组
comp.answers
news.answers
Perl/Tk常见问题档案(ftp站点) [注意: FAQ可能是很多文件]
ftp://rtfm.mit.edu/pub/usenet/comp.lang.perl.tk
ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/comp/lang/perl/tk
ftp://ftp.uu.net/usenet/news.answers/perl-faq/ptk-faq
ftp://ftp.ccd.bnl.gov/pub/ptk/ 130.199.54.188
ftp://ftp.ccd.bnl.gov/pub/ptk/ptkFAQ.txt 130.199.54.188
ftp://ftp.wpi.edu/perl5/pTk-FAQ 130.215.24.209
ftp://perl.com/pub/perl/doc/ptkFAQ.gz 199.45.129.30
ftp://perl.com/pub/perl/doc/ptkFAQ.ps.gz 199.45.129.30
互联网上的perl/Tk常见问题
http://www.perltk.org/contrib/ptkTOC.html
http://pubweb.bnl.gov/~ptk/
http://fxfx.com/kgr/compound/ (Perl/Tk组合组件主页)
http://www.perltk.org/contrib/ptkIMG.html (常见问题的图形补充)
http://www.perltk.org/contrib/etc/ http://www.perltk.org/contrib/misc/ http://www.perltk.org/contrib/PNMTYAK/ http://www.mirai.com/wks/
邮件列表
majordomo@lists.stanford.edu
ptk@lists.stanford.edu
(译者:下面的内容都不是针对Perl/Tk的了,而且大部分是一些链接,所以就略去了——实在太多了……大家自己点进去看吧!:P)
Perl Specific Documentation
There are a growing number Perl books available. A more complete Perl-bibliographic discussion than that given here is available in the Perl FAQ or at:
http://www.perl.com/perl/info/books.html
For Perl 5 there is (as of September 1996) a "New Camel" by Larry Wall, Tom Christiansen, and Randal L. Schwartz, with Stephen Potter.
Programming Perl 2nd Edition
Larry Wall, Tom Christiansen, & Randal L. Schwartz with Stephen Potter
(c) 1996 O'Reilly & Associates Inc.
ISBN 1-56592-149-6 (English)
A forthcoming book from major Perl/Tk contributor Sriram Srinivasan is:
Advanced Perl Programming
By Sriram Srinivasan
1st Edition August 1997 (est.)
O'Reilly & Associates Inc.
ISBN: 1-56592-220-4, Order Number: 2204
440 pages (est.), $34.95 (est.)
A second edition of the Llama is due out soon too:
Learning Perl, 2ndEdition
Randal L. Schwartz
June 1997 (est.) O'Reilly & Associates Inc.
ISBN 1-56592-284-0 (English)
The two early Perl books by Schwartz and Wall are very helpful (even if they do pertain to perl 4 and not 5. Beware that perl/Tk makes extensive use of perl 5 object-oriented features.):
Learning Perl (The Llama)
Randal L. Schwartz
Copyright (c) 1993 O'Reilly & Associates Inc.
ISBN 1-56592-042-2 (English)
ISBN 2-84177-005-2 (French)
ISBN 3-930673-08-8 (German)
ISBN 4-89502-678-1 (Japanese)
Programming Perl (The Camel)
Larry Wall and Randal L. Schwartz
Copyright (c) 1991 O'Reilly & Associates Inc.
ISBN 0-937175-64-1 (English)
ISBN 3-446-17257-2 (German) (Programmieren in Perl, translator: Hanser Verlag)
ISBN 4-89052-384-7 (Japanese)
There is also some Perl5 (book material) information at:
http://www.metronet.com/1h/perlinfo/perl5/
Jon Orwant (the organizer of the comp.lang.perl.tk newgroup) has a book on Perl 5 that has a chapter that discusses the Tk extension. (Please note that it is mostly about Perl 5, there is a some discussion of four simple Perl/Tk programs, but it is not a book wholly devoted to Perl/Tk.) It is nevertheless a good introduction to object-oriented Perl 5 programming. The relevant info:
Perl 5 Interactive Course
Jon Orwant
(c) 1996 The Waite Group Press
A Division of SAMS Publishing, Corte Madera, CA USA
ISBN: 1-57169-064-6
The Perl 5 Quick Reference Guide (may require LaTeX for installation) can be obtained from any CPAN ftp site. De