请教一个perl embedding的问题

我希望在C++代码中调用perl API函数eval_pv()运行perl代码片断,然后得到返回值.

但是eval_pv()返回的SV *是由谁释放的?

我关心这个问题是担心内存泄漏.

从SV *的值看,perl应当是每次返回都新创建了一个SV,如果我多次调用eval_pv那就会有很多SV专为返回值创建.

我试过对返回的SV *调用SvREFCNT_dec(),但是在C++程序退出(也就是PerlInterpreter对象销毁)时,会有错误信息:

Attempt to free unreferenced scalar

但是如果不去调用SvREFCNT_dec(),在C++代码中就会看到返回的SV引用计数始终是1.

哪位有解决类似问题的经验吗?谢谢.

perl 5.8.8