2017-02-01から1ヶ月間の記事一覧

ExtUtils::MakeMaker - Makefile.PLのカスタマイズ

Perl › XS › here ExtUtils::MakeMakerを使ったMakefile.PLの記述方法を解説します。 テストスクリプトを指定する デフォルトでは「t」ディレクトリ以下の試験スクリプトが実行されますが、さらに深い階層のサブディレクトリの試験スクリプトを実行したい場…

XSモジュールを作成する

Perl › XS › here Perlから呼び出すことのできるように作成したC言語(あるいはC++)の関数のことをエクステンションといいます。一般的にはXSと総称して呼ばれることが多いようですので、XSと呼ぶことにします。XSモジュールを作成してPerlから呼び出すための…

XSにおけるPerlの型とC言語の型の相互変換

Perl › XS › here PerlからCの関数を呼び出すということは、Perlの型をCの型へ変換を行い、C言語の関数を呼び出し、結果を、C言語の型に戻してPerlに返すということです。つまり、覚えることの大部分は型変換を覚えることにつきます。 ここではどのような型…

複数モジュールを使うXSの簡単な実装方法

Perl › XS › here XSを使ってモジュールを作ろうとしたときに、複数のモジュールに分割するときにふと困りました。たとえば、SomeModuleとSomeModule::Utilの両方でXSの実装を行いたい場合です。方法を調べていたのですが、実装方法が結構煩雑で難しいなと感…

C言語のライブラリをXSファイルから読み込む方法

Perl › XS › here C言語のライブラリをXSファイルから読み込む方法を解説します。 h2xsでモジュールを作成 最初にh2xsでXS用のモジュールを作成します。 h2xs -A -n SomeModule こうすると「SomeModule」というディレクトリが作成されます。次のようなファイ…

XSでC言語の構造体をPerlのオブジェクトとして扱う方法

Perl › XS › here XSでは、構造体自体をPerlのオブジェクトとして扱うこともできます。C言語の構造体をPerlのオブジェクトとして扱う方法を解説します。 h2xsでモジュールを作成 最初にh2xsでXS用のモジュールを作成します。 h2xs -A -n SomeModule こうする…

C++のクラスをXSから利用する方法

Perl › XS › here XSでC++のクラスを呼び出す方法を学びましょう。これができるようになれば、どんなC++のライブラリでも、Perlにバインディングができるようになると思います。 h2xsでモジュールを作成 最初にh2xsでXS用のモジュールを作成します。 h2xs -A…

C++のライブラリをXSから利用する方法

Perl › XS › here PerlのXSではC++で書かれたライブラリを呼び出すこともできます。コンパイラとリンカに、C++用の「g++」を指定するだけです。 h2xsでモジュールを作成 最初にh2xsでXS用のモジュールを作成します。 h2xs -A -n SomeModule こうすると「Some…

Perlぜひ覚えておきたいテクニック

Perl › here Perlで開発するときに、ぜひとも覚えてほしいテクニックをまとめました。 1. リファレンス配列とハッシュとリファレンスを使って多次元データ構造を自由に使う。 2. 例外処理Perlの例外処理についての解説です。 3. コマンドライン引数コマンド…