The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w

# $Header: /home/cvsroot/NetZ3950/samples/simple.pl,v 1.8 2003/05/02 09:17:36 mike Exp $

use Net::Z3950;
use strict;

die "Usage: simple.pl <host> <port> <db> <\@query> [<option> <value>] ...\n"
    unless @ARGV >= 4;
my $host = shift();
my $port = shift();
my $db = shift();
my $query = shift();
my $mgr = new Net::Z3950::Manager();
$mgr->option(preferredRecordSyntax => Net::Z3950::RecordSyntax::USMARC);
while (@ARGV) {
    my $type = shift();
    my $val = shift();
    $mgr->option($type, $val);
}

my $conn = new Net::Z3950::Connection($mgr, $host, $port, databaseName => $db)
    or die "can't connect: $!";

my $rs = $conn->search($query)
    or die $conn->errmsg();

my $n = $rs->size();
print "found $n records:\n";

for (my $i = 0; $i < $n; $i++) {
    my $rec = $rs->record($i+1);
    if (!defined $rec) {
	print STDERR "record ", $i+1, ": error #", $rs->errcode(),
	    " (", $rs->errmsg(), "): ", $rs->addinfo(), "\n";
	next;
    }
    print "=== record ", $i+1, " ===\n", $rec->render();
}