No meu script TCL estou passando uma lista vazia como argumento para um proc. Dentro do proc, estou adicionando valores à lista. Mas fora desse processo, os valores da lista não são refletidos. Como posso acessar a mesma lista que é modificada dentro do proc?
Nota: Não quero retornar do processo por alguns motivos que não mencionei aqui no interesse de manter meu requisito simples.
proc addNames { names } {
lappend names tom
lappend names harry
puts $names
}
set names {}
addNames $names
puts "Outside of proc: names"
puts $names
Se você não quiser usar
return
no seu processo, você pode usar,upvar
por exemploNo entanto, observe que isso cria uma dependência no seu processo da existência de
names
no ambiente de chamada. Uma abordagem mais flexível seria passar um parâmetro com o nome danames
variável: