in reply to Embedded Perl Global Variables
Perhaps you know too much about the way perl stores variables. You do not need the global stash to create a global variable. This should do it:
SV *v = perl_get_sv("::variable", 1)The second parameter is a boolean flag that controls whether perl should create the variable if it does not exist. Once you have the SV pointer, you can use the rest of the perlguts API to work with it. For example, you could set its value to 0:
perl_sv_setiv(v, 0)The perl_get_* API works with package scoped "local" variables. Lexical variables are much harder to find -- there you do need to know a lot about scratchpads and how perl stores lexical variables.
The index for Advanced Perl Programming sucks. On page 331, table 20-1, there is a brief description of the perl_get_sv function.
The Jenness/Cozens book, Extending and Embedding Perl published by Manning, has much better coverage of the perl internals. The perlguts.pod docs distributed with Perl are quite good too.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Embedded Perl Global Variables
by blssu (Pilgrim) on Oct 07, 2003 at 01:17 UTC | |
by Anonymous Monk on Oct 07, 2003 at 05:28 UTC |