in reply to Wrapping a C library
Maybe using SWIG?
That's definitely an option. That's how the Math::GSL source is created. (Math::GSL wraps the GSL library.)
However, I don't know how SWIG works, or how to use it.
Inline::C (already mentioned) also has an 'AUTOWRAP' capability which could presumably be utilised. Although I've used Inline::C extensively, I don't know how to make proper use of 'AUTOWRAP' either. Of course, you can always craft the wrapping by hand using Inline::C or XS. That's the way I've always done it - it's a bit laborious, but at least you don't have to come to terms with the use of AUTOWRAP :-)
If you do use Inline::C, be sure to check out 'perldoc Inline::C-Cookbook'. It has some good examples that will show you how to link an external library, and how to create a "radar*" object - among other things.
Note that Inline::C and XS are essentially the same. Inline::C just takes its input in the form of C code, autogenerates the XS code from that C code, and then automatically compiles the XS code and runs the perl code (which presumably makes use of that compiled XS code). It's not hard to take the Inline::C code and convert it to an XS file if you ever want to.
Cheers,
Rob