in reply to Binding C libraries

Unfortunately I can't give you any practical advice since I don't know C...

But as to your last question, I think it's best to have an object-oriented interface if possible and a simple procedural interface to the most common methods.

This way you will satisfy the people writing OO programs without scaring away beginners or people in a hurry (or anyone else who prefers it procedural).

CGI.pm is one example of a very popular module that does it both ways.

(I am assuming of course that the thing you want to do can sensibly be done both OO and procedurally, which I think is implied in your question.)

Replies are listed 'Best First'.
Re^2: Binding C libraries
by spurperl (Priest) on Feb 08, 2005 at 11:18 UTC
    Not everything can be written in an object-oriented manner. The OP asked about C, which doesn't directly support the object oriented paradigm.

    Generally, the design is specific to the application. Use the most suitable tool for the job ! If all you're writing is a set of list utilities, for example, no object orientation is *really* needed. In some designs, however, there really is a place for objects.

    One of the most important things to keep in mind about this is that a library is better to be "stateless". This allows to write multi-threaded code with no problems. Object oriented programming in Perl (passing $self around) is stateless if done right. Writing a C library with a bunch of static objects and functions that act upon them is far from being stateless, however, and if such a thing is absolutely required don't forget to document it.