Извините, что так много. Скажите пожалуйста, почему этот код - хреновый? Может, надо по-другому? proc main {argv} { set ::wrcred {rublei rubl rubla rubla rubla rublei rublei rublei rublei rublei} set ::wkcred {kopeek kopeika kopeik kopeik kopeik kopeek kopeek kopeek kopeek kopeek} set ::wtcred {tisach tisacha tisachi tisachi tisachi tisach tisach tisach tisach tisach} set ::balcred [split [lindex $argv 0] "."] puts "got balcred $::balcred" set ::credr [lindex $::balcred 0] set ::credk [lindex $::balcred 1] set ::rlen [llength [split $::credr ""]] set ::klen [llength [split $::credk ""]] switch $::rlen { 1 {ordnum} 2 {decnum} 3 {hndnum} 4 {thnnum} } switch $::klen { 1 {kordnum} 2 {kdecnum} } } proc ordnum {} { switch -regexp $::credr { ^0$ {puts "$::credr [lindex $::wrcred $::credr]"; return} ^1$ {puts "$::credr [lindex $::wrcred $::credr]"; return} ^[2-4]$ {puts "$::credr [lindex $::wrcred $::credr]"; return} ^[5-9]$ {puts "$::credr [lindex $::wrcred $::credr]"; return} } }