Provided by: libnet-z3950-simpleserver-perl_1.15-1build1_amd64 bug

NAME

       Net::Z3950::Record::GRS1 - Perl package used to encode GRS-1 records.

SYNOPSIS

         use Net::Z3950::GRS1;

         my $a_grs1_record = new Net::Z3950::Record::GRS1;
         my $another_grs1_record = new Net::Z3950::Record::GRS1;

         $a_grs1_record->AddElement($type, $value, $content);
         $a_grs1_record->Render();

DESCRIPTION

       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.

APPENDIX A

       These element data types are specified in the Z39.50 protocol:

         Net::Z3950::GRS1::ElementData::Octets
         Net::Z3950::GRS1::ElementData::Numeric
         Net::Z3950::GRS1::ElementData::Date
         Net::Z3950::GRS1::ElementData::Ext
         Net::Z3950::GRS1::ElementData::String                 <---
         Net::Z3950::GRS1::ElementData::TrueOrFalse
         Net::Z3950::GRS1::ElementData::OID
         Net::Z3950::GRS1::ElementData::IntUnit
         Net::Z3950::GRS1::ElementData::ElementNotThere
         Net::Z3950::GRS1::ElementData::ElementEmpty
         Net::Z3950::GRS1::ElementData::NoDataRequested
         Net::Z3950::GRS1::ElementData::Diagnostic
         Net::Z3950::GRS1::ElementData::Subtree                <---

       Only the '<---' marked types are so far supported in this package.

AUTHOR

       Anders Sonderberg Mortensen <sondberg@indexdata.dk> Index Data ApS, Copenhagen, Denmark.  2001/03/09

SEE ALSO

       Specification of the GRS-1 standard, for instance in the Z39.50 protocol specification.

POD ERRORS

       Hey! The above document had some coding errors, which are explained below:

       Around line 372:
           Non-ASCII character seen before =encoding in 'Sonderberg'. Assuming ISO8859-1