HTTP::Response may have a different definition of success than you do

The is_success() method which HTTP::Response provides is not necessarily a full indicator of success. This has bitten me before, so I thought it was worth writing about. Perhaps it may save you some heartache down the line.

Read the full post.

Upgrading Business::PayPal::API

I got co-maint on Business::PayPal::API about 3 years ago in order to patch one line that was throwing a warning. The previous release had been 2 years prior to that. So it's fair to say that this module has not lately been on a rapid release cycle. It's still in use, though, and lately there has been some activity on related to it. So, I finally took an evening to sit down and try to cut a new release.

Read the full post.

Building your own MMDB databases for IP-specific data

If you use a GeoIP database, you're probably familiar with MaxMind's MMDB format.

At MaxMind, we created the MMDB format because we needed a format that was very fast and highly portable. MMDB comes with supported readers in many languages. In this blog post, we'll use Perl modules to create an MMDB file which contains an access list of IP addresses. This kind of database could be used when allowing access to a VPN or a hosted application.

Read ="…

Stop Writing Your Own Commify Functions

Writing your own commify function may well be right up there with writing your own web framework or templating system. Most of us have done it and it probably wasn't worth the effort. Enter CLDR::Number. (I should note here that it's not obvious from the name that this module will commify for you -- that's one of the reasons I'm writing this up.)

Read the full post:…

On the status of HTTP::BrowserDetect

HTTP::BrowserDetect is at least 15 years old. I've had co-maint on it for 5 years now and I've summarized its current state of affairs. The full story is available on my blog.