In response to Wilma from the Cave Age : that's why functions can take a third argument to specify the prefix to skip. All is in the documentation, but not that easy to grasp as it should be for such a general-purpose module.
This module went into large refactoring last year, and seeing the API change everyday was annoying, to say the least. But the result worth the wait. The new OO API is way more consistent and usable than the previous one. It also tries to keep up-to-date with features that are added to mpd. The test suite that fakes a mpd daemon is also a strong point.
My mpd scripts are now about three times shorter than the old ones. Definitely a sign of a well-done job.
The refcount function is basically ref ? Devel::Refcount::refcount : Devel::Peek::SvREFCNT (which is possibly marginally useful), while refcount_sv is just the latter. But this module includes more than 50kB of SWIG-generated C code just to achieve what would ultimately require only a few lines of XS. And I'm not talking about testing definedness as "being different from &PL_sv_undef"... Ooops.
Next time you release a distribution, please search CPAN for similar modules first, and then ask advices at your favorite perl hackers' hangout.
Edit: I don't think the other modules work *that* differently CPAN needed desperately this distribution. I pointed to the possible replacements and they're quite short.
If you used SWIG because you didn't know XS, that's fine, but please don't say that XS is as heavily bloated as what you're bundling. It's just not.
As for the comment, it smells more of cargo-culting than real insight of what's going on. It's also a kludge to address a shortcoming in how SWIG passes arguments, which brings us to the previous problem.
Sorry, but using wrong tools for solving problems that are already solved doesn't really make me want to use this.