File-ANVL

 view release on metacpan or  search on metacpan

erc  view on Meta::CPAN

   $ erc get | sort                # less random order

=head1 OPTIONS

=over

=item B<-h>, B<--help>

Print extended help documentation.

=item B<--man>

Print full documentation.

=item B<--version>

Print the current version number and exit.

=back

=head1 SEE ALSO

A Name Value Language (ANVL)
	L<http://www.cdlib.org/inside/diglib/ark/anvlspec.pdf>

A Metadata Kernel for Electronic Permanence (pdf)
	L<http://journals.tdl.org/jodi/article/view/43>

=head1 AUTHOR

John Kunze I<jak at ucop dot edu>

=head1 COPYRIGHT

  Copyright 2009-2011 UC Regents.  Open source BSD license.

=begin CPAN

=head1 README

=head1 SCRIPT CATEGORIES

=end CPAN

=cut

#    #$erc = "erc: Smith, J.|The Whole Truth|2004|http://example.com/foo/bar";
#    $errmsg = File::ERC::erc_anvl2erc_turtle ($erc, $rec);
#    $errmsg and
#	print("$errmsg\n")
#    or
#	print("turtle record:\n$rec\n")
#    ;

# xxx     add %{ and %} to anvl decoding
# xxx     decide on good name for short form and long form ERC
# xxx make this File::ANVL::getpara
#
sub getpara { my( $filehandle )=@_;

	local $/ = "";			# set "paragraph" input mode
					# $/ == $INPUT_RECORD_SEPARATOR
	$filehandle	and return <$filehandle>;

	# If no $filehandle, behave as if supporting "<>" aka "<ARGV>".
	my $rec = <ARGV>;		# (test print "$. ";)
	close ARGV	if eof;		# reset line numbers between files
	return $rec;
}

sub do_turtle { my( @nodes )=@_;

	my $exit_status = 0;		# optimistic

	my ($msg, $trec, @elems);
	while ($_ = getpara()) {
		($msg = erc_anvl2erc_turtle($_, $trec)) and
			die "erc_anvl2erc_turtle: $msg";
		print $trec;
		#($msg = anvl_recsplit($_, \@elems)) and
		#	die "anvl_recsplit: $msg";
		#print scalar(@elems), " elements found\n",
		#	"First element label is $elems[0]\n",
		#	"First element value is $elems[1]\n";
	}
	return $exit_status;
}



( run in 3.318 seconds using v1.01-cache-2.11-cpan-364913b4093 )