I have a problem with memory management when using a Perl interpreter embeded in my application as described in perlembed. I'm not sure if this is the right mailing list for this kind of question, but I could not find a better one.
As a guess it's because the variables used within the eval aren't being freed. Try something like:
dSP; ENTER ; SAVETMPS ; PUSHMARK(SP); //do you eval here FREETMPS ; LEAVE ; and see if that makes a difference. Cheers, jez.