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

Hi monks,

I am calling a perl subroutine from a C program. I have 4 questions

(1) My first question is --what is the need of "perl_run" if i am using "perl_call_argv" to call the perl subroutine . The reason why i am asking is that when i initially used "perl_call_arv" only, i got error like free(): invalid pointer 0x804c690!But when i called "perl_run" before "perl_destruct" the error vanished.Why this happened. When i referred to perldoc it says "in general it's considered good form so that DESTROY methods and END blocks are executed at the right time."

(2) My second question is about the third argument in "perl_parse".Some people put it as 2 or 3 or argc. I want to know what it actually means.

(3) My third question is ---I have to call 2 different perl subroutines in 2 different perl files from a C file. So i want to know whether i will to have initialize 2 seperate occurances of "PerlInterpreter" . If it is possible to use same "PerlInterpreter" for calling 2 different perl files ,could you please specify how.

(4) Is there any other documentaion for perlembed,perlguts,perlcall other than perldoc. Wherever i search in internet people have copied from perldoc and put it in another form.Could any one help me to find a documentation other than perldoc.You people being monks in perl could easily do with PERLDOC.But novices like me cannot.So please