home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!stanford.edu!agate!agate!adrianho
- From: adrianho@barkley.berkeley.edu (Adrian J Ho)
- Newsgroups: comp.lang.tcl
- Subject: Re: uplevel/upvar and trace
- Date: 22 Jul 92 16:44:52
- Organization: University of California, Berkeley
- Lines: 35
- Distribution: usa
- Message-ID: <ADRIANHO.92Jul22164452@barkley.berkeley.edu>
- References: <1992Jul22.203440.15926@Arco.COM>
- NNTP-Posting-Host: barkley.berkeley.edu
- In-reply-to: cgp@Arco.COM's message of Wed, 22 Jul 1992 20:34:40 GMT
-
- In article <1992Jul22.203440.15926@Arco.COM> cgp@Arco.COM (Chris Phillips (214) 754-6419) writes:
- >However, the following extensions to arrays doesn't work
- >for the upvar version:
- > proc a1 {n i op} {
- > set z [uplevel set [set n]($i)]
- > puts stdout $z
- > }
- > proc a2 {n i op} {
- > upvar [set n]($i) z
- > puts stdout $z
- > }
- >Why?
-
- From the upvar command documentation in the Tcl man page:
-
- upvar ?level? otherVar myVar ?otherVar myVar ...?
- [...] Neither otherVar or myVar may refer to an element of an array.
-
- which is what you're actually doing in a2. The following will work:
-
- proc a2 {n i op} {
- upvar [set n] z
- puts stdout $z($i)
- }
-
- tcl>trace var b(1) w a2
- tcl>set b(1) 2
- 2
- tcl>
- --
- -----------------------------------------------------------------------------
- Adrian Ho, He With The Embarrassingly *Dead* Passion ** Phone: (510) 642-5563
- System Manager, CFD Lab, ME Dept, UC Berkeley * adrianho@barkley.berkeley.edu
- Maintainer, Tcl/Tk Contrib Archive ---- barkley.berkeley.edu [128.32.142.237]
- Send all Tcl/Tk Archive-related stuff to tcl-archive@barkley.berkeley.edu
-