This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re: [PATCH] [ID 20011130.166] "in memory" file handles via scalas not documented...
[perl5.git] / pod / perlxstut.pod
index 347b46e..4ce0597 100644 (file)
@@ -682,7 +682,8 @@ the meaning of these elements, pay attention to the line which reads
 
 Anything before this line is plain C code which describes which headers
 to include, and defines some convenience functions.  No translations are
-performed on this part, it goes into the generated output C file as is.
+performed on this part, apart from having embedded POD documentation
+skipped over (see L<perlpod>) it goes into the generated output C file as is.
 
 Anything after this line is the description of XSUB functions.
 These descriptions are translated by B<xsubpp> into C code which
@@ -914,9 +915,9 @@ way to store and load your extra subroutines.
 
 There is absolutely no excuse for not documenting your extension.
 Documentation belongs in the .pm file.  This file will be fed to pod2man,
-and the embedded documentation will be converted to the man page format,
-then placed in the blib directory.  It will be copied to Perl's man
-page directory when the extension is installed.
+and the embedded documentation will be converted to the manpage format,
+then placed in the blib directory.  It will be copied to Perl's
+manpage directory when the extension is installed.
 
 You may intersperse documentation and Perl code within the .pm file.
 In fact, if you want to use method autoloading, you must do this,
@@ -1093,15 +1094,15 @@ Mytest.xs:
                    HV * rh;
                    STRLEN l;
                    char * fn = SvPV(*av_fetch((AV *)SvRV(paths), n, 0), l);
-       
+
                    i = statfs(fn, &buf);
                    if (i != 0) {
                        av_push(results, newSVnv(errno));
                        continue;
                    }
-       
+
                    rh = (HV *)sv_2mortal((SV *)newHV());
-       
+
                    hv_store(rh, "f_bavail", 8, newSVnv(buf.f_bavail), 0);
                    hv_store(rh, "f_bfree",  7, newSVnv(buf.f_bfree),  0);
                    hv_store(rh, "f_blocks", 8, newSVnv(buf.f_blocks), 0);
@@ -1109,7 +1110,7 @@ Mytest.xs:
                    hv_store(rh, "f_ffree",  7, newSVnv(buf.f_ffree),  0);
                    hv_store(rh, "f_files",  7, newSVnv(buf.f_files),  0);
                    hv_store(rh, "f_type",   6, newSVnv(buf.f_type),   0);
-       
+
                    av_push(results, newRV((SV *)rh));
                }
                RETVAL = newRV((SV *)results);
@@ -1185,7 +1186,7 @@ To create a reference, we use the C<newRV> function.  Note that you can
 cast an AV* or an HV* to type SV* in this case (and many others).  This
 allows you to take references to arrays, hashes and scalars with the same
 function.  Conversely, the C<SvRV> function always returns an SV*, which may
-need to be be cast to the appropriate type if it is something other than a
+need to be cast to the appropriate type if it is something other than a
 scalar (check with C<SvTYPE>).
 
 =item *