For 2023 - we are now fully retired from IT training. We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.
Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!
I am also active in many other area and still look after a lot of web sites - you can find an index ((here)) |
Tcl - uplevel to run code at calling level
Tcl procs (they're Tcl's functions) can pass information back via the return command, and they can access data in the top level of code via the global commands. Incoming parameters can be passed in 'by name' so that any values altered within the proc are also altered in the calling code - there's an example here using the upvar command and another here.
A further facility - uplevel - allows you to run a command in the scope of the proc that called your code. It can be useful for setting an extra return value, but it's also a command that allows all sorts of horrors - so be careful. And remember that any variables that you reference in the uplevel command that are prefixed with a $ will be interpretted / substituted before the uplevel command is even run - so will be from the local scope. There's an example of uplevel in use here if you want to see what I mean! (written 2009-10-24)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles T213 - Tcl/Tk - Libraries, Packages and Namespaces [146] example of Tcl namespaces and packages - (2004-12-10) [1339] Packages and Namespaces are like Suitcases and Aircraft - (2007-09-09) [1529] Tcl - learning how to use namespaces, packages and libraries together - (2008-02-02) [3066] Separating groups of variables into namespaces - (2010-11-24) [3417] What is a namespace and why do we need them? - (2011-09-03) [3418] Tcl packages, pkg_mkIndex, pkgIndex.tcl -what are they and why use them. - (2011-09-03) [4522] Loading packages in your Tcl program - (2015-10-09) T207 - Tcl/Tk - Procedures and Variable Scope [96] Variable Scope - (2004-10-22) [122] Passing arrays to procs in Tcl - (2004-11-18) [308] Call by name v call by value - (2005-05-11) [409] Functions and commands with dangerous names - (2005-08-11) [775] Do not duplicate your code - (2006-06-23) [1163] A better alternative to cutting and pasting code - (2007-04-26) [1404] Tcl - global, upvar and uplevel. - (2007-10-24) [1782] Calling procs in Tcl and how it compares to Perl - (2008-09-02) [2466] Tcl - passing arrays and strings in and back out of procs - (2009-10-22) [2520] Global and Enable - two misused words! - (2009-11-30) [2929] Passing a variable number of parameters in to a function / method - (2010-08-20) [3192] Tcl - Some example of HOW TO in handling data files and formats - (2011-03-04) [3414] Passing back multiple results in Tcl - upvar and uplevel - (2011-09-01) [3629] Sharing lots of values in Tcl without having lots of global declarations - (2012-02-28) [4398] Accessing variables across subroutine boundaries - Perl, Python, Java and Tcl - (2015-01-18)
Some other Articles
Pantomimes around Melksham - 2009/2010 seasonAccidentally typed ci rather than vi?How did I do THAT?By train ...Tcl - uplevel to run code at calling levelQuick easy and dangerous - automated logins via Tcl / ExpectUsing Tcl and Expect to automate repetitive jobsExploring Old Railwayssplit and join in tcl and expectA short form of if ... then ... else
|
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page
This is a page archived from The Horse's Mouth at
http://www.wellho.net/horse/ -
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).
|
|