summaryrefslogtreecommitdiff
path: root/pod/perlcall.pod
diff options
context:
space:
mode:
authorRafael Garcia-Suarez <rgarciasuarez@gmail.com>2005-11-05 10:13:56 +0000
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2005-11-05 10:13:56 +0000
commit8400cfc39f5aaecb3f31c92529b223aab4f98ae1 (patch)
treeb60e86663b0a6889adff7fd83ad0ab3ab9fe89d1 /pod/perlcall.pod
parentb59aed6733cbdee6d898449f638bd7a17e772993 (diff)
downloadperl-8400cfc39f5aaecb3f31c92529b223aab4f98ae1.tar.gz
Remove the obsolete KNOWN PROBLEMS sections from perlcall.pod
(noticed by Robin Houston) p4raw-id: //depot/perl@26012
Diffstat (limited to 'pod/perlcall.pod')
-rw-r--r--pod/perlcall.pod67
1 files changed, 0 insertions, 67 deletions
diff --git a/pod/perlcall.pod b/pod/perlcall.pod
index fb5ea37f0f..4b77359e25 100644
--- a/pod/perlcall.pod
+++ b/pod/perlcall.pod
@@ -366,73 +366,6 @@ called C<GIMME>; in a void context it returns C<G_SCALAR> instead of
C<G_VOID>. An example of using the C<GIMME_V> macro is shown in
section I<Using GIMME_V>.
-=head1 KNOWN PROBLEMS
-
-This section outlines all known problems that exist in the
-I<call_*> functions.
-
-=over 5
-
-=item 1.
-
-If you are intending to make use of both the G_EVAL and G_SCALAR flags
-in your code, use a version of Perl greater than 5.000. There is a bug
-in version 5.000 of Perl which means that the combination of these two
-flags will not work as described in the section I<FLAG VALUES>.
-
-Specifically, if the two flags are used when calling a subroutine and
-that subroutine does not call I<die>, the value returned by
-I<call_*> will be wrong.
-
-
-=item 2.
-
-In Perl 5.000 and 5.001 there is a problem with using I<call_*> if
-the Perl sub you are calling attempts to trap a I<die>.
-
-The symptom of this problem is that the called Perl sub will continue
-to completion, but whenever it attempts to pass control back to the
-XSUB, the program will immediately terminate.
-
-For example, say you want to call this Perl sub
-
- sub fred
- {
- eval { die "Fatal Error" ; }
- print "Trapped error: $@\n"
- if $@ ;
- }
-
-via this XSUB
-
- void
- Call_fred()
- CODE:
- PUSHMARK(SP) ;
- call_pv("fred", G_DISCARD|G_NOARGS) ;
- fprintf(stderr, "back in Call_fred\n") ;
-
-When C<Call_fred> is executed it will print
-
- Trapped error: Fatal Error
-
-As control never returns to C<Call_fred>, the C<"back in Call_fred">
-string will not get printed.
-
-To work around this problem, you can either upgrade to Perl 5.002 or
-higher, or use the G_EVAL flag with I<call_*> as shown below
-
- void
- Call_fred()
- CODE:
- PUSHMARK(SP) ;
- call_pv("fred", G_EVAL|G_DISCARD|G_NOARGS) ;
- fprintf(stderr, "back in Call_fred\n") ;
-
-=back
-
-
-
=head1 EXAMPLES
Enough of the definition talk, let's have a few examples.