Version 12 of parray

Updated 2008-10-19 00:28:33 by LES

parray - print an array's keys and values

http://purl.org/tcl/home/man/tcl8.4/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] above. What is the point of limiting parray like that? Imagine if all commands had that limitation, how much harder life would be.


See also:


Tcl syntax help - Arts and Crafts of Tcl-Tk Programming - Category Command