我正在学习更多关于sqlite3的知识,并且正在尝试使用sqlite3_analyzer来查看有关我的数据的大量数据。问题是,当我从下载sqlite-analyzer-linux-x86-3071502.zip并解压缩这个包,然后尝试运行程序时,我收到了这个错误:./sqlite3_analyzer: error while loading shared libraries: libtcl8.6.so: cannot open shared object file: No such file or directory
有人知道在哪里可以找到这个libtcl8.6.so文件吗?有没有人知道如何安
我对TCL的变量作用域规则感到困惑,下面是一个实验:
if {2 > 1} {
set x 100
}
proc p1 {} {
set y 200
}
puts $x
p1
puts $y
运行该脚本会得到以下结果:
100
can't read "y": no such variable
while executing
"puts $y"
这让我感到困惑:关于$y的错误是有意义的,因为y是在proc内部定义的,所以它不能在proc之外访问。问题是x,为什么它是可访问的?它是在"if“命令的嵌套脚本中定义的。
从我
我有一个关于TCL命名空间中的变量的问题。
我有两个.tcl文件,a.tcl,b.tcl,我在这两个文件中定义了相同的全局变量,例如:
a.tcl
variable same "hello1"
b.tcl
variable same "hello2"
proc use {} {
puts same
}
但是在b.tcl中,我尝试定义一个proc来使用变量"same",这是一个冲突吗?proc use()中使用的是哪一个?
关于Tcl在单元素列表上的行为,我有两个问题。正如中所述并在中讨论的(“单字列表与非列表值”一节),删除了单个元素周围的大括号(花括号)。
我正在编写一个有问题的应用程序,所以我想知道如何防止这种行为,并为单元素列表保留大括号。
我的第一个问题是:在Tcl解释器中,是否正在进行移除支撑的操作?这些具体的命令是在解释器中发生的吗?
list似乎是一个执行移除括号的命令:
% list a b
a b
% list a {b}
a b
% list a {{b}}
a {{b}}
但这在puts中不会发生
% puts "a b"
a b
% puts "a {b}"