File-ANVL
view release on metacpan or search on metacpan
$ 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 )