Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GRS1(3)		      User Contributed Perl Documentation	       GRS1(3)

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 SA,nderberg 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	'SA,nderberg'.
	   Assuming CP1252

perl v5.32.0			  2015-01-29			       GRS1(3)

NAME | SYNOPSIS | DESCRIPTION | APPENDIX A | AUTHOR | SEE ALSO | POD ERRORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Net::Z3950::GRS1&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help