This Perl module helps you to create and manipulate GRS-1 records (generic record syntax). So far, you
have only access to three methods:
new
Creates a new GRS-1 object,
my $grs1 = new Net::Z3950::GRS1;
AddElement
Lets you add entries to a GRS-1 object. The method should be called this way,
$grs1->AddElement($type, $value, $which, $content);
where $type should be an integer, and $value is free text. The $which argument should contain one of the
constants listed in Appendix A. Finally, $content contains the "thing" that should be stored in this
entry. The structure of $content should match the chosen element data type. For
$which == Net::Z3950::GRS1::ElementData::String;
$content should be some kind of scalar. If on the other hand,
$which == Net::Z3950::GRS1::ElementData::Subtree;
$content should be a GRS1 object.
Render
This method digs through the GRS-1 data structure and renders the record. You call it this way,
$grs1->Render();
If you want to access the rendered record through a variable, you can do it like this,
my $record_as_string;
$grs1->Render(POOL => \$record_as_string);
If you want it stored in a file, Render should be called this way,
$grs1->Render(FILE => 'record.grs1');
When no file name is specified, you can choose to stream the rendered record, for instance,
$grs1->Render(HANDLE => *STDOUT); ## or
$grs1->Render(HANDLE => *STDERR); ## or
$grs1->Render(HANDLE => *MY_HANDLE);
Hash2grs
This method converts a hash into a GRS-1 object. Scalar entries within the hash are converted into GRS-1
string elements. A hash entry can itself be a reference to another hash. In this case, the new referenced
hash will be converted into a GRS-1 subtree. The method is called this way,
$grs1->Hash2grs($href, $mapping);
where $href is the hash to be converted and $mapping is referenced hash specifying the mapping between
keys in $href and (type, value) pairs in the $grs1 object. The $mapping hash could for instance look like
this,
my $mapping = {
title => [2, 1],
author => [1, 1],
issn => [3, 1]
};
If the $grs1 object contains data prior to the invocation of Hash2grs, the new data represented by the
hash is simply added.