Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
Use of lindex in tcl

Posted by skumar003 (skumar003), 18 March 2003
I am using lindex in a procedure in the following manner

proc test{} {
for { set nn 0 } { $nn < [llength $failed] } { incr nn }     {
   
   write_log "            [lindex $failed $nn]  "

}
}

When test is called for the second time lindex will return the $failed appending the result it got the first time it got called.

Which means If I get failed 1 when i call it first time and 2 when when I call the second time it will return 3 strings the 2nd time it runs appending the value from first.

HOW CAN I CORRECT THIS? IS THERE ANY OTHER OPTION TO USE THAN LINDEX?

Posted by admin (Graham Ellis), 19 March 2003
Hi,  I don't think you've posted the complete example here - I think you've tried to reduce the problem to a minimal demo case (thank you), but you've gone a bit too far and taken the code that has the problem in it out!   Is $failed a global?   Does write_log open a file to append, or a lappend to a global variable?

Please do supply a bit more information and I'll have a further look.

Code:
[graham@dhansak graham]$ ./tryit
Error: can't read "failed": no such variable
   while executing
"llength $failed"
   (procedure "test" line 2)
   invoked from within
"test"
   (file "./tryit" line 11)
[graham@dhansak graham]$ cat tryit
#!/usr/bin/tcl

proc test {} {
for { set nn 0 } { $nn < [llength $failed] } { incr nn }  {

 write_log "  [lindex $failed $nn]  "

}
}

test
test
test

[graham@dhansak graham]$




This page is a thread posted to the opentalk forum at www.opentalk.org.uk and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2014: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho