| Gretl Manual: Gnu Regression, Econometrics and Time-series Library | ||
|---|---|---|
| Prev | Chapter 11. User-defined functions | Next |
The following script illustrates the difference between global and local variables. Note that functions can be defined anywhere, so long as it is before they are called.
set echo off
genr testvar = 1
printf "in main: testvar = %d\n", testvar
function foo
# create a local variable
genr my testvar = 2
printf "in foo: testvar = %d\n", testvar
bar
printf "back in foo: testvar = %d\n", testvar
# generate a global variable
genr glob = 15
end function
function bar
genr my testvar = 3
printf "in bar: testvar = %d\n", testvar
end function
# call foo, which calls bar
foo
printf "back in main: testvar = %d, glob = %d\n", \
testvar, glob
# list the global variables
ls
The output from the above is:
gretl version 1.3.0 ...
? nulldata 5
periodicity: 1, maxobs: 5,
observations range: 1-5
? set echo off
Generated scalar testvar (ID 2) = 1
in main: testvar = 1
Generated scalar testvar (ID 3) = 2
in foo: testvar = 2
Generated scalar testvar (ID 4) = 3
in bar: testvar = 3
back in foo: testvar = 2
Generated scalar glob (ID 4) = 15
back in main: testvar = 1, glob = 15
Listing 4 variables:
0) const 1) index 2) testvar 3) glob