Обычно рекомендуется использовать двумерные массивы (на самом деле просто имена составных элементов), например:
foreach x $listOf1to100 {
foreach y $listOf1to100 {
set ary($x,$y) "blah blah"
}
}
Однако, если вы действительно хотите создавать эти имена, вы можете сделать это несколькими способами.Один такой:
foreach x $listOf1to100 {
set ary${x}(...) "blah blah"
}
Но это безобразно.Еще страшнее, когда вы приходите читать массивы!Лучший выбор такой:
foreach x $listOf1to100 {
upvar 0 array$x a
set a(...) "blah blah"
}
Имейте в виду, что если вы действительно работаете с двумерными компактными числовыми индексами, то, возможно, лучше использовать вложенные списки для построения матрицы:
# Create
set matrix [lrepeat 100 [lrepeat 100 "blah blah"]]
# Lookup
set value [lindex $matrix $x $y]
# Update
lset matrix $x $y $value