首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl Tcl::pTk读取Tcl版本

Perl Tcl::pTk读取Tcl版本
EN

Stack Overflow用户
提问于 2018-05-25 13:16:51
回答 2查看 161关注 0票数 3

我想使用Perl读取模块Tcl::pTk链接到的Tcl版本的版本。我发现下面的东西很好用

代码语言:javascript
复制
use strict;
use warnings;

use Tcl::pTk;

my $int = new Tcl::pTk;

$int->Eval(<<'EOS');
# pure-tcl code to create widgets (e.g. generated by some GUI builder)
text .e
## http://wiki.tcl.tk/1626#tk_version
.e insert end "tcl_version      $tcl_version\n"
.e insert end "tcl_patchLevel   $tcl_patchLevel\n"
.e insert end "tk_version       $tk_version\n"
.e insert end "tk_patchLevel    $tk_patchLevel\n"
.e insert end "tk_library       $tk_library\n"
pack .e
EOS

my $e = $int->widget('.e');     # get .e entry into play
$int->MainLoop;

这将在GUI中显示值,但我希望在脚本的其他部分中使用$tcl_version。在这方面,我失败了,因为$tcl_version似乎不存在。我不需要GUI部分,只需要标量的值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-25 14:14:28

最简单的事情,可能是可行的,应该尝试:

代码语言:javascript
复制
my tcl_version = $int->Eval('info tclversion');

在特克斯和凯科斯群岛方面,另一种或同等方式是:

代码语言:javascript
复制
my tcl_version = $int->Eval('set tcl_version');

所有Tcl命令都会产生一个结果,因此应该在这里反映出来。而且,大多数情况下,您最好获得版本报告的修补程序级别;该语言版本实际上只是用于总体特性,而不是任何细节,如系统状态报告(例如,您需要bug报告的修补程序号)。

票数 5
EN

Stack Overflow用户

发布于 2019-02-23 13:46:00

此后,我在Tcl::pTk、$int->tclVersion$int->tclPatchlevel中找到了未文档化的方法,它们分别相当于$int->Eval('info tclversion')$int->Eval('info patchlevel')

它们已经在Tcl::pTk内部使用。我不打算删除这些内容,但也不知道长期保留它们还是让它们“公开”/documented是个好主意,所以最好还是坚持现有答案的方法。(Tcl::Tk是基于Tcl::pTk的,它没有这些方法。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50530136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档