- Perl ›
- here
Perl XS入門 - PerlへのC言語バインディング
XSを使ったPerlへのC言語のバインディングについて解説します。まず最初に、XSモジュールを作成する方法について解説します。
C言語がまったくわからないという方は、以下の講座をご用意しています。
1. XSモジュールの作成
では実際にXSモジュールを作成してみましょう。XSモジュール作成コマンド、Makefile.PL、makeについて丁寧に解説しています。
2. perlapi
XSからPerlのデータを操作する方法にについて解説します。PerlはC言語で実装されていますが、Perlの機能をC言語から呼び出すためのAPIがたくさん用意されています。
3. Makefile.PL関連
Makefileを生成するために、Perlでは、Makefile.PLというファイルを作って、ExtUtil::MakeMakerというモジュールを使用します。このExtUtil::MakeMakerというモジュールを便利に使用するための記事を掲載します。
4. 型変換
XSを使って、PerlからC言語を利用するということは、Perlの型とC言語の型を自由に変換する必要があるということです。型の変換方法について解説します。
5. XSのテクニック
XSのテクニックを紹介します。
複数モジュールを使う
たとえばMyModuleとMyModule::Utilの二つのモジュールをXSで実装したい場合に、簡単にできる方法を紹介しています。
メモリ管理
XSはC言語で書くことになるので、メモリ管理を手動で行わなくてはいけません。XSでは、Perlのデータはモータルという状態にすることで、自動で解放する仕組みがあり、それを使うと便利です。
6. C言語との連携
C言語のライブラリやC言語の構造体などをXSと連携する方法を解説します。
C言語のライブラリを読み込む方法
C言語で作成したライブラリをXSから利用する方法については以下の記事を参考にしてください。
C言語のデータ型の扱い
C言語の構造体をPerlのデータとして利用する方法を解説します。C言語の構造体をPerlのオブジェクトに対応させたい場合は、次の記事を参考にしてください。
7. C++との連携
XSの中でC++を使いたい場合は以下の記事を参考にしてください。C++を書く場合のXSファイルとMakefile.PLの書き方を解説しています。
C++ではC言語の構造体に加えてクラスが存在します。C++のクラスをXSで扱う方法については以下で解説しています。
XSの公式ドキュメント
Perl XSの公式ドキュメントへのリンクです。
その他にPerlのデータを操作するためのperlapiや、Perlの内部実装を解説したperlgutsなどが役に立つでしょう。