Esempio che mostra l'ambito delle variabili

Lo script seguente illustra la differenza tra le variabili globali e locali. Si noti che le funzioni possono essere definite in qualsiasi punto dello script, a patto di definirle prima di usarle.


      set echo off

      genr testvar = 1
      printf "Fuori, testvar vale %d\n", testvar  

      function pippo
         # genera una variabile locale
         genr my testvar = 2
         printf "In pippo: testvar vale %d\n", testvar
         pluto
         printf "Tornando in pippo, testvar vale %d\n", testvar
         # genera una variabile globale
         genr glob = 15
      end function

      function pluto
         genr my testvar = 3
         printf "In pluto, testvar vale %d\n", testvar
      end function

      # Chiama pippo, che chiama pluto
      foo
      printf "Tornando fuori, testvar vale %d, glob vale %d\n", \
      testvar, glob 
      # Elenca le variabili globali
      ls 
    

Eseguendo lo script si ottiene:


      gretl versione 1.3.0 ...
      ? nulldata 5
      Periodicità: 1, oss. max.: 5,
      intervallo: 1-5
      ? set echo off
      Generato lo scalare testvar (ID 2) = 1
      Fuori, testvar vale 1
      Generato lo scalare testvar (ID 3) = 2
      In pippo, testvar vale 2
      Generato lo scalare testvar (ID 4) = 3
      In pluto, testvar vale 3
      Tornando in pippo, testvar vale 2
      Generato lo scalare glob (ID 4) = 15
      Tornando fuori, testvar vale 1, glob vale 15
      4 variabili elencate:
      0) const       1) index       2) testvar     3) glob