bbb7841e985996f8a03902673480776b2a58c292
[ZOOM-Perl-moved-to-github.git] / samples / net-z3950-zoom / zoomtst1.pl
1 # $Id: zoomtst1.pl,v 1.4 2008-05-14 13:34:00 mike Exp $
2 #
3 # See ../README for a description of this program.
4 # perl -I../../blib/lib -I../../blib/arch zoomtst1.pl <target> <query>
5
6 use strict;
7 use warnings;
8 use Net::Z3950::ZOOM;
9
10 if (@ARGV != 2) {
11     print STDERR "Usage: $0 target query\n";
12     print STDERR "      eg. $0 z3950.indexdata.dk/gils computer\n";
13     exit 1;
14 }
15
16 my($host, $query) = @ARGV;
17 my($errcode, $errmsg, $addinfo) = (undef, "dummy", "dummy");
18
19 my $conn = Net::Z3950::ZOOM::connection_new($host, 0);
20 $errcode = Net::Z3950::ZOOM::connection_error($conn, $errmsg, $addinfo);
21 die("Can't connect to host '$host': ",
22     "errcode='$errcode', errmsg='$errmsg', addinfo='$addinfo'")
23     if $errcode != 0;
24
25 Net::Z3950::ZOOM::connection_option_set($conn,
26                                         preferredRecordSyntax => "usmarc");
27
28 my $rs = Net::Z3950::ZOOM::connection_search_pqf($conn, $query);
29 $errcode = Net::Z3950::ZOOM::connection_error($conn, $errmsg, $addinfo);
30 die("Can't search for '$query': ",
31     "errcode='$errcode', errmsg='$errmsg', addinfo='$addinfo'")
32     if $errcode != 0;
33
34 my $n = Net::Z3950::ZOOM::resultset_size($rs);
35 print "Query '$query' found $n records\n";
36
37 for my $i (0..$n-1) {
38     my $rec = Net::Z3950::ZOOM::resultset_record($rs, $i);
39     print "=== Record ", $i+1, " of $n ===\n";
40     print Net::Z3950::ZOOM::record_get($rec, "render");
41 }
42
43 Net::Z3950::ZOOM::resultset_destroy($rs);
44 Net::Z3950::ZOOM::connection_destroy($conn);