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
 
For 2021 - online Python 3 training - see ((here)).

Our plans were to retire in summer 2020 and see the world, but Coronavirus has lead us into a lot of lockdown programming in Python 3 and PHP 7.
We can now offer tailored online training - small groups, real tutors - works really well for groups of 4 to 14 delegates. Anywhere in the world; course language English.

Please ask about private 'maintenance' training for Python 2, Tcl, Perl, PHP, Lua, etc.
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., 2022: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 793803 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho