### NAME

source - Evaluate a file or resource as a Tcl script

### SYNOPSIS

source fileName
source -rsrc resourceName ?fileName?
source -rsrcid resourceId ?fileName?

### DESCRIPTION

This command takes the contents of the specified file or resource and passes it to the Tcl interpreter as a text script. The return value from source is the return value of the last command executed in the script. If an error occurs in evaluating the contents of the script then the source command will return that error. If a return command is invoked from within the script then the remainder of the file will be skipped and the source command will return normally with the result from the return command.

The end-of-file character for files is '\32' (^Z) for all platforms. The source command will read files up to this character. This restriction does not exist for the read or gets commands, allowing for files containing code and data segments (scripted documents). If you require a ``^Z'' in code for string comparison, you can use ``\032'' or ``\u001a'', which will be safely substituted by the Tcl interpreter into ``^Z''.

The -rsrc and -rsrcid forms of this command are only available on Macintosh computers. These versions of the command allow you to source a script from a TEXT resource. You may specify what TEXT resource to source by either name or id. By default Tcl searches all open resource files, which include the current application and any loaded C extensions. Alternatively, you may specify the fileName where the TEXT resource can be found.

### EXAMPLE

Run the script in the file foo.tcl and then the script in the file bar.tcl:

    source foo.tcl
    source bar.tcl

Alternatively:

    foreach scriptFile {foo.tcl bar.tcl} {
       source $scriptFile
    }

### SEE ALSO

file, cd, info

### KEYWORDS

file, script

    Copyright © 1993 The Regents of the University of California.
    Copyright © 1994-1996 Sun Microsystems, Inc.
    Copyright © 2000 Scriptics Corporation.
    Copyright © 1995-1997 Roger E. Critchlow Jr.