Anne L. Highsmith wrote:
I am trying to create a perl program using Net::Z3950 to connect to and search
the proquest dissertations and theses database. I can connect and search via
YAZ, but am having no luck via perl/Net::Z3950.
Here's the perl program:
use Net::Z3950;
$mgr = new Net::Z3950::Manager(
user=>'[user]',
pass=>'[password]',
);
$target = 'proquest-z3950.umi.com';
$port = '210';
$database = 'PQD';
$recordSyntax = 'SUTRS';
$conn = new Net::Z3950::Connection($mgr, $target, $port, databaseName =>$database) or die
"$!\n";
$rs = $conn->search(-prefix => '@and @attr 1=4 steamboat bertrand') or die
"$!\n";
$count = $rs->size();
print "$count\n" and die;
When I have the "$!\n"; in the '$rs = ' line, I always get the message "Operation in progress".
When I remove the "$!\n"; in the '$rs = ' line, and it falls through to $count = $rs->size(); , I get:
Can't call method "size" on an undefined value at ./zd line 13.
I've never used Net::Z3950, but my understanding of the Manager
class is that it is that connection is being made
asynchronously -- which means you need to use the wait()
function, as in the example here:
http://perl.z3950.org/docs/Z3950/Manager.html
You could try adding "async => 0" to the Manager object
construction, ie:
$mgr = new Net::Z3950::Manager(async => 0, user => xxx, pass => yyy);
or perhaps adding it here instead:
$conn = new Net::Z3950::Connection($mgr, $host, $port, async => 0);
Hope this helps,
Regards,
Ashley.
--
Ashley Sanders [EMAIL PROTECTED]
Copac http://copac.ac.uk A Mimas service funded by JISC