summaryrefslogtreecommitdiff
path: root/pod/perlembed.pod
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2000-02-29 22:29:36 +0000
committerGurusamy Sarathy <gsar@cpan.org>2000-02-29 22:29:36 +0000
commit4929bf7bc76235df307ee4ade0f6222410e8b46b (patch)
tree2ef7023a0940db572267040f96a32d4b2c3de6fe /pod/perlembed.pod
parent4b261d929a4c7cbf1234b17cb939dbdb2ff92731 (diff)
downloadperl-4929bf7bc76235df307ee4ade0f6222410e8b46b.tar.gz
fix pods to reflect newer canonical names for call_sv() etc.
p4raw-id: //depot/perl@5371
Diffstat (limited to 'pod/perlembed.pod')
-rw-r--r--pod/perlembed.pod62
1 files changed, 31 insertions, 31 deletions
diff --git a/pod/perlembed.pod b/pod/perlembed.pod
index 3ea173688f..b46c463f7f 100644
--- a/pod/perlembed.pod
+++ b/pod/perlembed.pod
@@ -12,7 +12,7 @@ Do you want to:
=item B<Use C from Perl?>
-Read L<perlxstut>, L<perlxs>, L<h2xs>, and L<perlguts>.
+Read L<perlxstut>, L<perlxs>, L<h2xs>, L<perlguts>, and L<perlapi>.
=item B<Use a Unix program from Perl?>
@@ -200,9 +200,9 @@ calling I<perl_run>.
=head2 Calling a Perl subroutine from your C program
-To call individual Perl subroutines, you can use any of the B<perl_call_*>
+To call individual Perl subroutines, you can use any of the B<call_*>
functions documented in L<perlcall>.
-In this example we'll use C<perl_call_argv>.
+In this example we'll use C<call_argv>.
That's shown below, in a program I'll call I<showtime.c>.
@@ -221,7 +221,7 @@ That's shown below, in a program I'll call I<showtime.c>.
/*** skipping perl_run() ***/
- perl_call_argv("showtime", G_DISCARD | G_NOARGS, args);
+ call_argv("showtime", G_DISCARD | G_NOARGS, args);
perl_destruct(my_perl);
perl_free(my_perl);
@@ -257,7 +257,7 @@ and package C<END {}> blocks.
If you want to pass arguments to the Perl subroutine, you can add
strings to the C<NULL>-terminated C<args> list passed to
-I<perl_call_argv>. For other data types, or to examine return values,
+I<call_argv>. For other data types, or to examine return values,
you'll need to manipulate the Perl stack. That's demonstrated in the
last section of this document: L<Fiddling with the Perl stack from
your C program>.
@@ -265,7 +265,7 @@ your C program>.
=head2 Evaluating a Perl statement from your C program
Perl provides two API functions to evaluate pieces of Perl code.
-These are L<perlguts/perl_eval_sv> and L<perlguts/perl_eval_pv>.
+These are L<perlapi/eval_sv> and L<perlapi/eval_pv>.
Arguably, these are the only routines you'll ever need to execute
snippets of Perl code from within your C program. Your code can be as
@@ -273,7 +273,7 @@ long as you wish; it can contain multiple statements; it can employ
L<perlfunc/use>, L<perlfunc/require>, and L<perlfunc/do> to
include external Perl files.
-I<perl_eval_pv> lets us evaluate individual Perl strings, and then
+I<eval_pv> lets us evaluate individual Perl strings, and then
extract variables for coercion into C types. The following program,
I<string.c>, executes three Perl strings, extracting an C<int> from
the first, a C<float> from the second, and a C<char *> from the third.
@@ -295,22 +295,22 @@ the first, a C<float> from the second, and a C<char *> from the third.
perl_run(my_perl);
/** Treat $a as an integer **/
- perl_eval_pv("$a = 3; $a **= 2", TRUE);
- printf("a = %d\n", SvIV(perl_get_sv("a", FALSE)));
+ eval_pv("$a = 3; $a **= 2", TRUE);
+ printf("a = %d\n", SvIV(get_sv("a", FALSE)));
/** Treat $a as a float **/
- perl_eval_pv("$a = 3.14; $a **= 2", TRUE);
- printf("a = %f\n", SvNV(perl_get_sv("a", FALSE)));
+ eval_pv("$a = 3.14; $a **= 2", TRUE);
+ printf("a = %f\n", SvNV(get_sv("a", FALSE)));
/** Treat $a as a string **/
- perl_eval_pv("$a = 'rekcaH lreP rehtonA tsuJ'; $a = reverse($a);", TRUE);
- printf("a = %s\n", SvPV(perl_get_sv("a", FALSE), n_a));
+ eval_pv("$a = 'rekcaH lreP rehtonA tsuJ'; $a = reverse($a);", TRUE);
+ printf("a = %s\n", SvPV(get_sv("a", FALSE), n_a));
perl_destruct(my_perl);
perl_free(my_perl);
}
-All of those strange functions with I<sv> in their names help convert Perl scalars to C types. They're described in L<perlguts>.
+All of those strange functions with I<sv> in their names help convert Perl scalars to C types. They're described in L<perlguts> and L<perlapi>.
If you compile and run I<string.c>, you'll see the results of using
I<SvIV()> to create an C<int>, I<SvNV()> to create a C<float>, and
@@ -323,11 +323,11 @@ I<SvPV()> to create a string:
In the example above, we've created a global variable to temporarily
store the computed value of our eval'd expression. It is also
possible and in most cases a better strategy to fetch the return value
-from I<perl_eval_pv()> instead. Example:
+from I<eval_pv()> instead. Example:
...
STRLEN n_a;
- SV *val = perl_eval_pv("reverse 'rekcaH lreP rehtonA tsuJ'", TRUE);
+ SV *val = eval_pv("reverse 'rekcaH lreP rehtonA tsuJ'", TRUE);
printf("%s\n", SvPV(val,n_a));
...
@@ -336,7 +336,7 @@ variables and we've simplified our code as well.
=head2 Performing Perl pattern matches and substitutions from your C program
-The I<perl_eval_sv()> function lets us evaluate strings of Perl code, so we can
+The I<eval_sv()> function lets us evaluate strings of Perl code, so we can
define some functions that use it to "specialize" in matches and
substitutions: I<match()>, I<substitute()>, and I<matches()>.
@@ -365,18 +365,18 @@ been wrapped here):
#include <EXTERN.h>
#include <perl.h>
- /** my_perl_eval_sv(code, error_check)
- ** kinda like perl_eval_sv(),
+ /** my_eval_sv(code, error_check)
+ ** kinda like eval_sv(),
** but we pop the return value off the stack
**/
- SV* my_perl_eval_sv(SV *sv, I32 croak_on_error)
+ SV* my_eval_sv(SV *sv, I32 croak_on_error)
{
dSP;
SV* retval;
STRLEN n_a;
PUSHMARK(SP);
- perl_eval_sv(sv, G_SCALAR);
+ eval_sv(sv, G_SCALAR);
SPAGAIN;
retval = POPs;
@@ -403,7 +403,7 @@ been wrapped here):
sv_setpvf(command, "my $string = '%s'; $string =~ %s",
SvPV(string,n_a), pattern);
- retval = my_perl_eval_sv(command, TRUE);
+ retval = my_eval_sv(command, TRUE);
SvREFCNT_dec(command);
return SvIV(retval);
@@ -425,10 +425,10 @@ been wrapped here):
sv_setpvf(command, "$string = '%s'; ($string =~ %s)",
SvPV(*string,n_a), pattern);
- retval = my_perl_eval_sv(command, TRUE);
+ retval = my_eval_sv(command, TRUE);
SvREFCNT_dec(command);
- *string = perl_get_sv("string", FALSE);
+ *string = get_sv("string", FALSE);
return SvIV(retval);
}
@@ -449,10 +449,10 @@ been wrapped here):
sv_setpvf(command, "my $string = '%s'; @array = ($string =~ %s)",
SvPV(string,n_a), pattern);
- my_perl_eval_sv(command, TRUE);
+ my_eval_sv(command, TRUE);
SvREFCNT_dec(command);
- *match_list = perl_get_av("array", FALSE);
+ *match_list = get_av("array", FALSE);
num_matches = av_len(*match_list) + 1; /** assume $[ is 0 **/
return num_matches;
@@ -539,7 +539,7 @@ results--the return value of your Perl subroutine--off the stack.
First you'll need to know how to convert between C types and Perl
types, with newSViv() and sv_setnv() and newAV() and all their
-friends. They're described in L<perlguts>.
+friends. They're described in L<perlguts> and L<perlapi>.
Then you'll need to know how to manipulate the Perl stack. That's
described in L<perlcall>.
@@ -576,7 +576,7 @@ deep breath...
XPUSHs(sv_2mortal(newSViv(a))); /* push the base onto the stack */
XPUSHs(sv_2mortal(newSViv(b))); /* push the exponent onto stack */
PUTBACK; /* make local stack pointer global */
- perl_call_pv("expo", G_SCALAR); /* call the function */
+ call_pv("expo", G_SCALAR); /* call the function */
SPAGAIN; /* refresh stack pointer */
/* pop the return value from stack */
printf ("%d to the %dth power is %d.\n", a, b, POPi);
@@ -638,7 +638,7 @@ the filename into a guaranteed-unique package name, and then compile
the code into that package using L<perlfunc/eval>. In the example
below, each file will only be compiled once. Or, the application
might choose to clean out the symbol table associated with the file
-after it's no longer needed. Using L<perlcall/perl_call_argv>, We'll
+after it's no longer needed. Using L<perlapi/call_argv>, We'll
call the subroutine C<Embed::Persistent::eval_file> which lives in the
file C<persistent.pl> and pass the filename and boolean cleanup/cache
flag as arguments.
@@ -750,7 +750,7 @@ with L<perlfunc/my> whenever possible.
/* call the subroutine, passing it the filename as an argument */
args[0] = filename;
- perl_call_argv("Embed::Persistent::eval_file",
+ call_argv("Embed::Persistent::eval_file",
G_DISCARD | G_EVAL, args);
/* check $@ */
@@ -953,7 +953,7 @@ B<ExtUtils::Embed> can also automate writing the I<xs_init> glue code.
% cc -c interp.c `perl -MExtUtils::Embed -e ccopts`
% cc -o interp perlxsi.o interp.o `perl -MExtUtils::Embed -e ldopts`
-Consult L<perlxs> and L<perlguts> for more details.
+Consult L<perlxs>, L<perlguts>, and L<perlapi> for more details.
=head1 Embedding Perl under Win32