Go to the first, previous, next, last section, table of contents.


呼び出しの定義

Perl では、Perl sub を呼ぶことを許している C の関数がたくさんあります。 それは、

I32 perl_call_sv(SV* sv, I32 flags) ;
I32 perl_call_pv(char *subname, I32 flags) ;
I32 perl_call_method(char *methname, I32 flags) ;
I32 perl_call_argv(char *subname, I32 flags, register char **argv) ;

中心となる関数は、 perl_call_sv です。他の関数は、自分のやりたい ことに合わせて、 perl_call_sv を利用します。 perl_call_sv は、2 つの引数をとり、最初の引数は、 `SV*' です。これによって、呼び 出される Perl sub を C の文字列 (まず、SV に変換されています) か、sub へ のリファレンスで指定することができます。例 7 では、自ら perl_call_sv を利用する方法を示します。2 番目のパラメータ `flags' は、汎用のオプションコマンドです。このパラメータは、すべて の perl_call_* 関数に共通です。詳しくは、次の節で述べます。

関数 perl_call_pv は、ほぼ perl_call_sv と同じですが、最初 の引数として呼び出したい Perl sub を示す C の char * を指定します。 例: `perl_call_pv("fred", 0)'

関数 perl_call_method は、最初の引数に、 bless された、ク ラスへのリファレンスを指定しなければなりません。そのリファレンスを使って 検索し、該当クラスから methname を呼び出します。 See section 例 9: perl_call_method を使う, を参照。

perl_call_argv は、 `subname' パラメータで指定された Perl sub を呼び出します。これはまた、通常の `flags' パラメータも指定しま す。最後のパラメータ `argv' には、Perl sub に渡される C の文字列の リストを指定します。 See section 例 8: perl_call_argv を使う, を参照してくださ い。

すべての関数は、数を返します。これは、Perl sub がスタック上に置いた、返 却物の数を示します。

一般論として、これらの関数からの返却値は「常に」チェックしてください。 Perl sub から特定の数が返って来ることを期待している場合にも、誰かがなに か期待以外のことをしないとは限りません。「そんなの聞いていない」とは言わ ないでください。


Go to the first, previous, next, last section, table of contents.

検索式: