The source command will load a file
and execute it. This allows a program to be broken up into multiple
files, with each file defining procedures and variables for a
particular area of functionality. For instance, you might have a
file called database.tcl that contains all the
procedures for dealing with a database, or a file called
gui.tcl that handles creating a graphical user
interface with Tk. The main script can then simply include each
file using the source command. More
powerful techniques for program modularization are discussed in the
next lesson on packages.
This command can be used to:
source fileNamefileName and
executes it. If the script executes successfully, source returns the value of the last statement in
the script.source will return that error.proc definition) then source will return immediately, without executing
the remainder of the script.fileName starts with a tilde
(~) then $env(HOME) will substituted for
the tilde, as is done in the file
command.sourcedata.tcl:
# Example data file to be sourced
set scr [info script]
proc testproc {} {
global scr
puts "testproc source file: $scr"
}
set abc 1
return
set aaaa 1
sourcemain.tcl:
set filename "sourcedata.tcl"
puts "Global variables visible before sourcing $filename:"
puts "[lsort [info globals]]\n"
if {[info procs testproc] eq ""} {
puts "testproc does not exist. sourcing $filename"
source $filename
}
puts "\nNow executing testproc"
testproc
puts "Global variables visible after sourcing $filename:"
puts "[lsort [info globals]]\n"