On 2/28/18 3:00 PM, Greg Wooledge wrote:
> Does unset create some kind of "placeholder" in the current function
> (but not in a caller)?
Yes, that's what I said. In the current scope, unset arranges for the
variable to appear unset. In a previous scope, unset just removes the
variable, which uncovers an instance of the variable at a (further)
previous scope.
It looks like I added that code in 1995. The code before that was "pure"
dynamic scoping, in the sense that it just removed the variable and
`uncovered' a previous scope's value no matter where the variable was
declared. It seems like I added the special case for several reasons,
but there's no indication of widespread user complaint about the behavior
of `unset'. (Of course, that was a long time ago.)
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU [email protected] http://tiswww.cwru.edu/~chet/