the module is Net::Statsd. It uses a pair of package variables to set the destination host/port, and I have a need to for multiple separate destinations.
For that particular module, I agree an OO interface would seem like the best way to go.
As for how. The existing interface does not lend itself to being objectised without effectively re-writing the interface of every procedure. As such, I think you'd be better off using a completely separate package (say Net::Statsd::OO or similar) and just writing it from scratch. With reference to the existing; but without having it as a dependency.
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.