たとえば、Perl から C 関数を呼び出す場合Inline::C
:
use feature qw(say);
use strict;
use warnings;
use Inline C => './test.c';
say "Calling test()..";
test();
say "Finished.";
どこにtest.c
ある:
void test()
{
SV *sv_variable = newSVpv("test", 0);
// do something..
//SvREFCNT_dec(sv_variable); // free variable
printf( "Returning from test()..\n");
return;
}
呼び出してもしなくても、スクリプトは正常に動作するようSvREFCNT_dec(sv_variable)
です。によるとperlguts
:
作成した SV を解放するには、SvREFCNT_dec(SV*) を呼び出します。通常、この呼び出しは必要ありません