Update after runnning make - chapter numbers have changed

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7875 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2005-11-26 22:57:21 +00:00
commit 7c088c87dd
19 changed files with 663 additions and 685 deletions

View file

@ -6,7 +6,7 @@
</head>
<body bgcolor="#ffffff">
<H1><a name="Perl5"></a>25 SWIG and Perl5</H1>
<H1><a name="Perl5"></a>26 SWIG and Perl5</H1>
<!-- INDEX -->
<div class="sectiontoc">
<ul>
@ -86,7 +86,7 @@ later. Earlier versions are problematic and SWIG generated extensions
may not compile or run correctly.
</p>
<H2><a name="Perl5_nn2"></a>25.1 Overview</H2>
<H2><a name="Perl5_nn2"></a>26.1 Overview</H2>
<p>
@ -107,7 +107,7 @@ described. Advanced customization features, typemaps, and other
options are found near the end of the chapter.
</p>
<H2><a name="Perl5_nn3"></a>25.2 Preliminaries</H2>
<H2><a name="Perl5_nn3"></a>26.2 Preliminaries</H2>
<p>
@ -132,7 +132,7 @@ To build the module, you will need to compile the file
<tt>example_wrap.c</tt> and link it with the rest of your program.
</p>
<H3><a name="Perl5_nn4"></a>25.2.1 Getting the right header files</H3>
<H3><a name="Perl5_nn4"></a>26.2.1 Getting the right header files</H3>
<p>
@ -164,7 +164,7 @@ loaded, an easy way to find out is to run Perl itself.
</pre>
</div>
<H3><a name="Perl5_nn5"></a>25.2.2 Compiling a dynamic module</H3>
<H3><a name="Perl5_nn5"></a>26.2.2 Compiling a dynamic module</H3>
<p>
@ -197,7 +197,7 @@ the target should be named `<tt>example.so</tt>',
`<tt>example.sl</tt>', or the appropriate dynamic module name on your system.
</p>
<H3><a name="Perl5_nn6"></a>25.2.3 Building a dynamic module with MakeMaker</H3>
<H3><a name="Perl5_nn6"></a>26.2.3 Building a dynamic module with MakeMaker</H3>
<p>
@ -231,7 +231,7 @@ the preferred approach to compilation. More information about MakeMaker can be
found in "Programming Perl, 2nd ed." by Larry Wall, Tom Christiansen,
and Randal Schwartz.</p>
<H3><a name="Perl5_nn7"></a>25.2.4 Building a static version of Perl</H3>
<H3><a name="Perl5_nn7"></a>26.2.4 Building a static version of Perl</H3>
<p>
@ -300,7 +300,7 @@ added to it. Depending on your machine, you may need to link with
additional libraries such as <tt>-lsocket, -lnsl, -ldl</tt>, etc.
</p>
<H3><a name="Perl5_nn8"></a>25.2.5 Using the module</H3>
<H3><a name="Perl5_nn8"></a>26.2.5 Using the module</H3>
<p>
@ -455,7 +455,7 @@ system configuration (this requires root access and you will need to
read the man pages).
</p>
<H3><a name="Perl5_nn9"></a>25.2.6 Compilation problems and compiling with C++</H3>
<H3><a name="Perl5_nn9"></a>26.2.6 Compilation problems and compiling with C++</H3>
<p>
@ -598,7 +598,7 @@ have to find the macro that conflicts and add an #undef into the .i file. Pleas
any conflicting macros you find to <a href="http://www.swig.org/mail.html">swig mailing list</a>.
</p>
<H3><a name="Perl5_nn10"></a>25.2.7 Compiling for 64-bit platforms</H3>
<H3><a name="Perl5_nn10"></a>26.2.7 Compiling for 64-bit platforms</H3>
<p>
@ -625,7 +625,7 @@ also introduce problems on platforms that support more than one
linking standard (e.g., -o32 and -n32 on Irix).
</p>
<H2><a name="Perl5_nn11"></a>25.3 Building Perl Extensions under Windows</H2>
<H2><a name="Perl5_nn11"></a>26.3 Building Perl Extensions under Windows</H2>
<p>
@ -636,7 +636,7 @@ section assumes you are using SWIG with Microsoft Visual C++
although the procedure may be similar with other compilers.
</p>
<H3><a name="Perl5_nn12"></a>25.3.1 Running SWIG from Developer Studio</H3>
<H3><a name="Perl5_nn12"></a>26.3.1 Running SWIG from Developer Studio</H3>
<p>
@ -699,7 +699,7 @@ print "$a\n";
</pre></div>
<H3><a name="Perl5_nn13"></a>25.3.2 Using other compilers</H3>
<H3><a name="Perl5_nn13"></a>26.3.2 Using other compilers</H3>
<p>
@ -707,7 +707,7 @@ SWIG is known to work with Cygwin and may work with other compilers on Windows.
For general hints and suggestions refer to the <a href="Windows.html#Windows">Windows</a> chapter.
</p>
<H2><a name="Perl5_nn14"></a>25.4 The low-level interface</H2>
<H2><a name="Perl5_nn14"></a>26.4 The low-level interface</H2>
<p>
@ -717,7 +717,7 @@ can be used to control your application. However, it is also used to
construct more user-friendly proxy classes as described in the next section.
</p>
<H3><a name="Perl5_nn15"></a>25.4.1 Functions</H3>
<H3><a name="Perl5_nn15"></a>26.4.1 Functions</H3>
<p>
@ -740,7 +740,7 @@ use example;
$a = &amp;example::fact(2);
</pre></div>
<H3><a name="Perl5_nn16"></a>25.4.2 Global variables</H3>
<H3><a name="Perl5_nn16"></a>26.4.2 Global variables</H3>
<p>
@ -810,7 +810,7 @@ extern char *path; // Declared later in the input
</pre>
</div>
<H3><a name="Perl5_nn17"></a>25.4.3 Constants</H3>
<H3><a name="Perl5_nn17"></a>26.4.3 Constants</H3>
<p>
@ -837,7 +837,7 @@ $example::FOO = 2; # Error
</pre>
</div>
<H3><a name="Perl5_nn18"></a>25.4.4 Pointers</H3>
<H3><a name="Perl5_nn18"></a>26.4.4 Pointers</H3>
<p>
@ -946,7 +946,7 @@ as XS and <tt>xsubpp</tt>. Given the advancement of the SWIG typesystem and the
SWIG and XS, this is no longer supported.
</p>
<H3><a name="Perl5_nn19"></a>25.4.5 Structures</H3>
<H3><a name="Perl5_nn19"></a>26.4.5 Structures</H3>
<p>
@ -1080,7 +1080,7 @@ void Bar_f_set(Bar *b, Foo *val) {
</div>
<H3><a name="Perl5_nn20"></a>25.4.6 C++ classes</H3>
<H3><a name="Perl5_nn20"></a>26.4.6 C++ classes</H3>
<p>
@ -1145,7 +1145,7 @@ provides direct access to C++ objects. A higher level interface using Perl prox
can be built using these low-level accessors. This is described shortly.
</p>
<H3><a name="Perl5_nn21"></a>25.4.7 C++ classes and type-checking</H3>
<H3><a name="Perl5_nn21"></a>26.4.7 C++ classes and type-checking</H3>
<p>
@ -1181,7 +1181,7 @@ If necesssary, the type-checker also adjusts the value of the pointer (as is nec
multiple inheritance is used).
</p>
<H3><a name="Perl5_nn22"></a>25.4.8 C++ overloaded functions</H3>
<H3><a name="Perl5_nn22"></a>26.4.8 C++ overloaded functions</H3>
<p>
@ -1225,7 +1225,7 @@ example::Spam_foo_d($s,3.14);
Please refer to the "SWIG Basics" chapter for more information.
</p>
<H3><a name="Perl5_nn23"></a>25.4.9 Operators</H3>
<H3><a name="Perl5_nn23"></a>26.4.9 Operators</H3>
<p>
@ -1258,7 +1258,7 @@ $c = example::add_complex($a,$b);
Some preliminary work on mapping C++ operators into Perl operators has been completed. This is covered later.
</p>
<H3><a name="Perl5_nn24"></a>25.4.10 Modules and packages</H3>
<H3><a name="Perl5_nn24"></a>26.4.10 Modules and packages</H3>
<p>
@ -1325,7 +1325,7 @@ print Foo::fact(4),"\n"; # Call a function in package FooBar
</pre></div>
-->
<H2><a name="Perl5_nn25"></a>25.5 Input and output parameters</H2>
<H2><a name="Perl5_nn25"></a>26.5 Input and output parameters</H2>
<p>
@ -1544,7 +1544,7 @@ print "$c\n";
<b>Note:</b> The <tt>REFERENCE</tt> feature is only currently supported for numeric types (integers and floating point).
</p>
<H2><a name="Perl5_nn26"></a>25.6 Exception handling </H2>
<H2><a name="Perl5_nn26"></a>26.6 Exception handling </H2>
<p>
@ -1709,7 +1709,7 @@ This is still supported, but it is deprecated. The newer <tt>%exception</tt> di
functionality, but it has additional capabilities that make it more powerful.
</p>
<H2><a name="Perl5_nn27"></a>25.7 Remapping datatypes with typemaps</H2>
<H2><a name="Perl5_nn27"></a>26.7 Remapping datatypes with typemaps</H2>
<p>
@ -1726,7 +1726,7 @@ Typemaps are only used if you want to change some aspect of the primitive
C-Perl interface.
</p>
<H3><a name="Perl5_nn28"></a>25.7.1 A simple typemap example</H3>
<H3><a name="Perl5_nn28"></a>26.7.1 A simple typemap example</H3>
<p>
@ -1830,7 +1830,7 @@ example::count("e","Hello World");
</div>
<H3><a name="Perl5_nn29"></a>25.7.2 Perl5 typemaps</H3>
<H3><a name="Perl5_nn29"></a>26.7.2 Perl5 typemaps</H3>
<p>
@ -1935,7 +1935,7 @@ Return of C++ member data (all languages).
Check value of input parameter.
</div>
<H3><a name="Perl5_nn30"></a>25.7.3 Typemap variables</H3>
<H3><a name="Perl5_nn30"></a>26.7.3 Typemap variables</H3>
<p>
@ -2006,7 +2006,7 @@ properly assigned.
The Perl name of the wrapper function being created.
</div>
<H3><a name="Perl5_nn31"></a>25.7.4 Useful functions</H3>
<H3><a name="Perl5_nn31"></a>26.7.4 Useful functions</H3>
<p>
@ -2075,7 +2075,7 @@ int sv_isa(SV *, char *0;
</div>
<H2><a name="Perl5_nn32"></a>25.8 Typemap Examples</H2>
<H2><a name="Perl5_nn32"></a>26.8 Typemap Examples</H2>
<p>
@ -2084,7 +2084,7 @@ might look at the files "<tt>perl5.swg</tt>" and "<tt>typemaps.i</tt>" in
the SWIG library.
</p>
<H3><a name="Perl5_nn33"></a>25.8.1 Converting a Perl5 array to a char ** </H3>
<H3><a name="Perl5_nn33"></a>26.8.1 Converting a Perl5 array to a char ** </H3>
<p>
@ -2176,7 +2176,7 @@ print @$b,"\n"; # Print it out
</pre></div>
<H3><a name="Perl5_nn34"></a>25.8.2 Return values </H3>
<H3><a name="Perl5_nn34"></a>26.8.2 Return values </H3>
<p>
@ -2205,7 +2205,7 @@ can be done using the <tt>EXTEND()</tt> macro as in :
}
</pre></div>
<H3><a name="Perl5_nn35"></a>25.8.3 Returning values from arguments</H3>
<H3><a name="Perl5_nn35"></a>26.8.3 Returning values from arguments</H3>
<p>
@ -2259,7 +2259,7 @@ print "multout(7,13) = @r\n";
($x,$y) = multout(7,13);
</pre></div>
<H3><a name="Perl5_nn36"></a>25.8.4 Accessing array structure members</H3>
<H3><a name="Perl5_nn36"></a>26.8.4 Accessing array structure members</H3>
<p>
@ -2322,7 +2322,7 @@ the "in" typemap in the previous section would be used to convert an
to copy the converted array into a C data structure.
</p>
<H3><a name="Perl5_nn37"></a>25.8.5 Turning Perl references into C pointers</H3>
<H3><a name="Perl5_nn37"></a>26.8.5 Turning Perl references into C pointers</H3>
<p>
@ -2387,7 +2387,7 @@ print "$c\n";
</pre></div>
<H3><a name="Perl5_nn38"></a>25.8.6 Pointer handling</H3>
<H3><a name="Perl5_nn38"></a>26.8.6 Pointer handling</H3>
<p>
@ -2466,7 +2466,7 @@ For example:
</pre>
</div>
<H2><a name="Perl5_nn39"></a>25.9 Proxy classes</H2>
<H2><a name="Perl5_nn39"></a>26.9 Proxy classes</H2>
<p>
@ -2482,7 +2482,7 @@ to the underlying code. This section describes the implementation
details of the proxy interface.
</p>
<H3><a name="Perl5_nn40"></a>25.9.1 Preliminaries</H3>
<H3><a name="Perl5_nn40"></a>26.9.1 Preliminaries</H3>
<p>
@ -2504,7 +2504,7 @@ SWIG creates a collection of high-level Perl wrappers. In your scripts, you wil
high level wrappers. The wrappers, in turn, interact with the low-level procedural module.
</p>
<H3><a name="Perl5_nn41"></a>25.9.2 Structure and class wrappers</H3>
<H3><a name="Perl5_nn41"></a>26.9.2 Structure and class wrappers</H3>
<p>
@ -2630,7 +2630,7 @@ $v-&gt;DESTROY();
</pre></div>
<H3><a name="Perl5_nn42"></a>25.9.3 Object Ownership</H3>
<H3><a name="Perl5_nn42"></a>26.9.3 Object Ownership</H3>
<p>
@ -2717,7 +2717,7 @@ counting, garbage collection, or advanced features one might find in
sophisticated languages.
</p>
<H3><a name="Perl5_nn43"></a>25.9.4 Nested Objects</H3>
<H3><a name="Perl5_nn43"></a>26.9.4 Nested Objects</H3>
<p>
@ -2770,7 +2770,7 @@ $p-&gt;{f}-&gt;{x} = 0.0;
%${$p-&gt;{v}} = ( x=&gt;0, y=&gt;0, z=&gt;0);
</pre></div>
<H3><a name="Perl5_nn44"></a>25.9.5 Proxy Functions</H3>
<H3><a name="Perl5_nn44"></a>26.9.5 Proxy Functions</H3>
<p>
@ -2804,7 +2804,7 @@ This function replaces the original function, but operates in an
identical manner.
</p>
<H3><a name="Perl5_nn45"></a>25.9.6 Inheritance</H3>
<H3><a name="Perl5_nn45"></a>26.9.6 Inheritance</H3>
<p>
@ -2880,7 +2880,7 @@ particular, inheritance of data members is extremely tricky (and I'm
not even sure if it really works).
</p>
<H3><a name="Perl5_nn46"></a>25.9.7 Modifying the proxy methods</H3>
<H3><a name="Perl5_nn46"></a>26.9.7 Modifying the proxy methods</H3>
<p>