jithoosin has asked for the wisdom of the Perl Monks concerning the following question:

 
From 
     Kiran Pradeep
     Perl Beginner
     
To
     The Monks
     Perl Monastry
     The Earth 
     Solar System
Respected Monks,
I am calling a perl subroutines in a perl file repeatedly from a C file.My question is that if i have GLOBAL variables in the perl file ,will the value of global variables be retained between each of function calls from the C file. I also want to when the global variables will actually be initialized? Are they initialized when i call "perl_parse" or "perl_run" or when i call "perl_argv"?

Replies are listed 'Best First'.
Re: perlembed – global variables
by Aristotle (Chancellor) on Dec 26, 2005 at 15:17 UTC

    Caveat lector: I don’t know what I’m talking about, because I haven’t written any code that embeds a Perl interpreter.

    That said, if the embedding interface works the way I would intuitively expect it from my experience with the way things work when writing Perl that runs in a standalone interpreter then global variables are initialised when the code that initialises them runs, which is usually part of the file-level code, so that would be when you call perl_run; however, if the initialisation is within BEGIN blocks or such, it will happen when you call perl_parse.

    And if mod_perl is any indication, then global variables are retained between function calls.

    Makeshifts last the longest.