Unsetting environment variables.

Don Hughes
  • Don Hughes
    Don Hughes

    Using Regina on a Linux/Apache system for web page cgi programs, I have used the
    CALL VALUE 'some-name', 'some-value', 'SYSTEM'
    function to pass some general global information.

    I have traced some intermitent problems on a long running system to cluttering up the environment space. 
    CALL VALUE 'same-name',,'SYSTEM'
    does not drop the values, and setting them to ' '  just sets them to ' '. Duh.

    ADDRESS 'SYSTEM' 'printenv'
    will print them, but
    ADDRESS 'SYSTEM' 'unset same-name'
    will not delete them.

    Restarting Apache clears the environment, but is not a workable solution.

    How can I clean up the environment?

    • Jürgen Lange
      Jürgen Lange

      On my system (SuSE 8.2 - Apache 1.3.27)
      I cannot reproduce you're problem:
      Say 'Content-type: text/html'
      Say '<html>'
      Say 'Value before='Value('bla',,'SYSTEM') '<br>'
      Call Value 'bla','test','SYSTEM'
      Say 'Value after='Value('bla',,'SYSTEM') '<br>'
      Say '</html>'

      Value before=
      Value after=test

      i.e. the environment variable IS being deleted.
      Moreover the value of the env variable is NOT "inherited" accross successive calls of the script: each time the result is the same.

      You're right in that it seems to be impossible to distinguish between the value being the empty string '' and the value not being set at all.