> TCL (we're on 7.6) has a special variable name "args" for variable
> arguments. It seems to work fine for 1 level, but I'm confused if/how
> it can be used for multiple procedure levels since it "listifies" its
> argument on every procedure call.
You want to make use of "eval":
proc foo {args} {
eval bar $args
}
proc bar {args} {
puts stdout [info level 0]
}
eval "breaks out" one level of list structure. You have to watch
out that you preserve args that need to remain such. Like so:
proc foo {cmd args} {
eval [list bar $cmd] $args
}
proc bar {cmd args} {
puts [info level 0]
}
Jeff Hobbs The Tcl Guy
Senior Developer http://www.ActiveState.com/
Tcl Support and Productivity Solutions
Join us in Sept. for Tcl'2002: http://www.tcl.tk/community/tcl2002/