parray - print an array's keys and values http://purl.org/tcl/home/man/tcl8.5/TclCmd/library.htm : '''parray''' ''arrayName'' Print on standard output the names and values of all the elements in the array ''arrayName''. ''ArrayName'' must be an array accessible to the caller of '''parray'''. It may be either local or global. In fact, it's more like this: : '''parray''' ''arrayName'' ?''pattern''? Print on standard output the names and values of all the elements in the array ''arrayName'' that match ''pattern''. If ''pattern'' is not specified, then all of the elements of the array are included in the result. If ''pattern'' is specified, then only those elements whose names match ''pattern'' (using the matching rules of [string match]) are included. ''ArrayName'' must be an array accessible to the caller of '''parray'''. It may be either local or global. ---- '''parray''' prints an array's keys and values, in key alphabetic order and formatted to the longest key name, to stdout. [RS] ---- Sometimes, a developer erroneously tries to do something like this: set str [parray env] or some other array. parray only produces output to [stdout]. Just copy /installdir/tcl/lib/tcl8.4/parray.tcl and modify to accumulate a string rather than calling puts . Call the proc something else, though, or you may unintentionally impact some other tool. [LES] on 10-18-2008: I just don't get it. A command/proc that '''returns''' data can be used in two ways: returning the data or printing it to stdout - because printing the output of a command that returns data is trivial. But a command/proc that will adamantly output to stdout '''only''' is half as useful (or even less than half). It can't simply return the data or feed it to a variable as in the '''set str [[parray env]]''' example above. What is the point of limiting '''parray''' like that? Imagine if all commands had that limitation, how much harder life would be. [DKF]: The '''parray''' command prints an array, just as [puts] prints a string. The equivalent for scripted processing is [array get]. ---- See also: * [array] * [arrayval] ---- !!!!!! [Arts and Crafts of Tcl-Tk Programming] %| [Tcl syntax help] | [Category Command] |% !!!!!! ---- '''[LIV] - 2010-02-01 17:19:35''' puts $var can be redirected to a file, but parray can't. The format from [array get ARRAYNAME] does not look good when write them to a file.