----------------------------- Perl Code ------------- ----------------
use Data::Dumper;
my %hash = ('abc' => 123, 'def' => 6);
print Dumper(\%hash);
给出输出,
$VAR1 = {
'def' => 6
'abc' => 123
};
----------------------------- TCL Code ------------- ----------------
set hash(abc) 123
set hash(def) 6
我想像Perl打印一样打印这个关联数组。有没有办法在除parray hash
之外的TCL中打印这个?
答案 0 :(得分:0)
如果您正在谈论生成将创建数组的可执行脚本,请执行以下操作:
proc dumpArray {arrayName} {
upvar $arrayName ary
return [list array set $arrayName [array get ary]]
}
如果您希望输出是多行的并且有些可读,那么您需要做更多的工作:
proc dumpArray {arrayName} {
upvar $arrayName ary
set result [list array set $arrayName]
append result "{\n"
foreach key [lsort -dictionary [array names ary]] {
append result " " [list $key $ary($key)] "\n"
}
append result "}"
return $result
}
从第一版的简单性可以看出,我们通常不会费心去编写特定的代码来转储数组;它首先实际上是一个单行。
有了其中一个,你就可以了:
array set hash {"abc" 123 "def" 6}
puts [dumpArray hash]