The Net::Z3950 Perl Module

8th May 2006

Do Not Use This Module!

Unless you need the Net::Z3950 API for backwards compatibility (i.e. you're building it because it's a prerequisite for an existing application) you should instead use the newer and better ZOOM-Perl module. Its functionality is a strict superset of this module's, but it provides many additional features, including record-format translation, character-set handling and a properly documented asynchronous API. Because it is based on ZOOM-C, the ZOOM-Perl model inherits functionality from that module, and will continue to benefit from its further development. Finally, the ZOOM-C dependency allows the ZOOM-Perl code to be much shorter than Net::Z3950, and therefore easier to support: ``The cheapest, fastest, most reliable components of a computer system are those that are not there'' -- Gordon Bell.

If despite all this, you really do want Net::Z3950 rather than ZOOM-Perl, then read on ...



What is Net::Z3950?

The Net::Z3950 module provides a Perl interface to the Z39.50 information retrieval protocol (aka. ISO 23950), a mature and powerful protocol used in application domains as diverse as bibliographic information, geo-spatial mapping, museums and other cultural heritage information, and structured vocabulary navigation.

(Current versions of Net::Z3950 only address the building of Z39.50 clients. If you want to build a server, you probably want Index Data's fine Net::Z3950::SimpleServer module.)

Since the first public release of the Net::Z3950 module (version 0.11 of Friday 9th February 2001) it's been adopted by software houses, universities, government departments and libraries in the UK, US, Denmark, Canada, Australia and Russia,, running a variety of operating systems on a selection of hardware.

For example, John Houser <> of library automation specialists VTLS Inc. ( has built and deployed the module on

And John Durno <> has successfully built and run it on the Cygwin Unix emulation layer, running on Windows 2000.

Here's a completely unsolicited testimonial:

Date: Fri, 5 Apr 2002 13:46:08 -0800 (PST)
From: Erik Hetzner <egh at OCF.Berkeley.EDU>

I have recently retrieved Net::Z3950 and must compliment the author; I find it far easier to understand than other Perl z39.50 implementations; although I suspect his has more to do with my very limited understanding of the z39.50 protocol, it is still an amazing task to get me to understand the API for a protocol I don't understand!

What's on this site?

Feedback to <> is welcome!