CODEセクションはXS関数宣言の戻り値とRETVALを尊重する。というか、戻り値のSP (スタックポインター)の処理をある程度自動的にやってくれる。これに対して、PPCODEはプログラマーが自分でSPの操作をする。
もし1個以上の戻り値をリストで返したい場合はPPCODE。
void /* 戻り値は無視される? */
hoge()
PREINIT:
int i;
dXSTARG;
PPCODE:
for(i = 0; i < 10; i++)
PUSHi(i);
CODEセクションはRETVALを使う
IV
hoge()
CODE:
RETVAL = 1;