Locals

The local command defines a private variable which may be used only within the routine where it is declared. A local overrides a global of the same name within that routine. It is a kind of declaration and is not executable code.

    ! Local variable to store the number of chocolate cake slices.
    local  cake_slice_count

    local  table, chair
    local  car= "Ford", gas, pickup ="Chevy"  ! same as car="Ford", gas=0, pickup="Chevy"
    local  batteries = 5        ! number started with
    local  color="Viridian"
    local  primes = 2, 3 ,5 ,7 ,9
    local ingredients = "flour", "water", "concrete"

    ! Local variable to store the number of chocolate cake slices,
    ! with a starting value defined right at the start.

    local cake_slice_count = 10

We’ll show the difference between a local and a global.

global color = blue
global xyzzy

! out here, color = "blue" and xyzzy = 0

routine test1
{
 local color = "viridian"
 local xyzzy = 5

! in here, color="viridian" and xyzzy = 5   ! changes to either are not seen outside this routine
}

routine test2
{

 local xyzzy = 9

! in here, color="blue" and xyzzy = 9   ! changes to xyzzy are not seen outside this routine, but changes
! to the variable color are
}

If a local is not given a value, it defaults to 0. Changes to a local do not affect a global of the same name if one exists or a local of the same name that may exist in any other routine.

See Also: global