**Information about procs - info** !!!!!! '''[Tcl Tutorial Lesson 28%|%Previous lesson%|%]''' | '''[Tcl Tutorial Index%|%Index%|%]''' | '''[Tcl Tutorial Lesson 30%|%Next lesson%|%]''' !!!!!! The `info` command includes a set of subcommands that will provide all the info you could want about a proc. These subcommands will return the body of a proc, the arguments to the proc, and the value of any default arguments. These subcommands can be used to: * Access the contents of a proc in a debugger. * Generate custom procs from a template. * Report default values while prompting for input. ***Info commands that return information about a proc*** `info args procname`: Returns a list of the names of the arguments to the procedure `procname`. `info body procname`: Returns the body of the procedure `procname`. `info default procname arg varName`: Returns 1 if the argument `arg` in procedure `procName` has a default, and sets `varName` to that default. Otherwise, returns 0. ---- ***Example*** ====== proc demo {argument1 {default "DefaultValue"} } { puts "This is a demo proc. It is being called with $argument1 and $default" # # We can use [info level] to find out if a value was given for # the optional argument "default" ... # puts "Actual call: [info level [info level]]" } puts "The args for demo are: [info args demo]\n" puts "The body for demo is: [info body demo]\n" set arglist [info args demo] foreach arg $arglist { if { [info default demo $arg defaultval] } { puts "$arg has a default value of $defaultval" } else { puts "$arg has no default" } } ====== <> Resulting output ======none The args for demo are: argument1 default The body for demo is: puts "This is a demo proc. It is being called with $argument1 and $default" # # We can use [info level] to find out if a value was given for # the optional argument "default" ... # puts "Actual call: [info level [info level]]" argument1 has no default default has a default value of DefaultValue ====== <> !!!!!! '''[Tcl Tutorial Lesson 28%|%Previous lesson%|%]''' | '''[Tcl Tutorial Index%|%Index%|%]''' | '''[Tcl Tutorial Lesson 30%|%Next lesson%|%]''' !!!!!!