`typemap' は、xsubpp コンパイラが、C の関数の引数や値を Perlの値に
マッピングするために使用する、コードを集めたものです。`typemap' ファ
イルは、 TYPEMAP、INPUT、OUTPUT というラベルを付け
た、3 つのセクションに分けることができます。INPUT セクションは、
Perl の値を、特定の型の C の変数に変換する方法を、コンパイラに伝えるもの
です。 OUTPUT セクションは、特定の型のC の値から、Perl が認識でき
る値に変換する方法をコンパイラに伝えます。 TYPEMAP セクションでは、
与えられた C の型を Perlの値にマッピングするために、どの INPUT コー
ドと OUTPUT コードを使用するかを、コンパイラに教えます。 
`typemap' のどのセクションも、TYPEMAP、INPUT、
OUTPUT のいずれかのキーワードで始まることになります。
Perl のソースディレクトリの `ext' ディレクトリにあるデフォルトの 
`typemap' には、Perl の拡張モジュールで使用することができる便利な型
をたくさん入れてあります。拡張モジュールによっては、自分のディレクトリに、
追加の `typemap' を定義して置いているものもあります。そのような追加
の `typemap' は、デフォルトの`typemap' の INPUT と 
OUTPUT のマッピングを参照することができます。xsubpp コンパイラで
は、デフォルトの `typemap' のマッピングが、拡張モジュールの 
`typemap' でオーバライドすることが許されています。
独自の `typemap' を必要とする拡張モジュールでは、ほとんどの場合、 
`typemap' ファイルの TYPEMAP セクションだけが必要になります。 
getnetconfigent() の例で示した独自 `typemap' は、拡張モジュー
ルの `typemap' の使用例としては、典型的なものかもしれません。この 
`typemap' は、C の構造体と T_PTROBJ typemap を等しいものとして扱う
ために使われてます。 getnetconfigent() で使った `typemap' を
再掲します。C の型は、XS の型とタブで区切られ、C の単項演算子 * 
は、C の型名の一部とみなされます。
TYPEMAP Netconfig *<tab>T_PTROBJ
Go to the first, previous, next, last section, table of contents.