Provided by: itcl3-doc_3.4.1-1ubuntu1_all bug


       local - create an object local to a procedure


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


       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.


       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 *]"


       class, object, procedure