Provided by: tcl-itcl4-doc_4.2.3-1_all bug

NAME

       itcl::local - create an object local to a procedure

SYNOPSIS

       itcl::local className objName ?arg arg ...?
_________________________________________________________________________________________________

DESCRIPTION

       The  local  command  creates an [incr Tcl] object that is local to the current call frame.
       When the call frame goes away, the object  is  automatically  deleted.   This  command  is
       useful for creating objects that are local to a procedure.

       As a side effect, this command creates a variable named "itcl-local-xxx", where xxx is the
       name of the object that is  created.   This  variable  detects  when  the  call  frame  is
       destroyed and automatically deletes the associated object.

EXAMPLE

       In  the  following example, a simple "counter" object is used within the procedure "test".
       The counter is created as a local object, so it is automatically  deleted  each  time  the
       procedure  exits.   The  puts  statements  included in the constructor/destructor show the
       object coming and going as the procedure is called.

              itcl::class counter {
                  private variable count 0
                  constructor {} {
                      puts "created: $this"
                  }
                  destructor {
                      puts "deleted: $this"
                  }

                  method bump {{by 1}} {
                      incr count $by
                  }
                  method get {} {
                      return $count
                  }
              }

              proc test {val} {
                  local counter x
                  for {set i 0} {$i < $val} {incr i} {
                      x bump
                  }
                  return [x get]
              }

              set result [test 5]
              puts "test: $result"

              set result [test 10]
              puts "test: $result"

              puts "objects: [itcl::find objects *]"

KEYWORDS

       class, object, procedure