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
Passing array to a proc

Posted by Arshad (Arshad), 3 January 2008
I want to pass an array to a proc and add 1 more element to the array from inside the proc.

When I execute this set of code, it results into different behaviour for tcl running on a Linux box and on a windows box.

On the linux box I get the element added from inside the proc with the original array but unfortunatly it does not work on a windows box.

Any inputs what could be the reason for this behaviour?



Linux Box -

% array set a { 1 2 3 4 5 6 }
% parray a
a(1) = 2
a(3) = 4
a(5) = 6
% proc foo { a } {
       upvar #0 a b
       set b(7) 8
}
% foo a
8
% parray a
a(1) = 2
a(3) = 4
a(5) = 6
a(7) = 8
%


Windows box -
% array set a {1 2 3 4 5 6}
% parray a
a(1) = 2
a(3) = 4
a(5) = 6
% proc foo { a } {
upvar a b
set b(7) 8
}
% foo a
8
% parray a
a(1) = 2
a(3) = 4
a(5) = 6

Posted by admin (Graham Ellis), 3 January 2008
Why have you run

upvar #0 a b

on one operating system and

upvar a b

on the other?

I think the difference you see is caused by you running different code, and not by anything to do with the operating system!



Posted by Arshad (Arshad), 3 January 2008
Thanks 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