new()
$style = new Biblio::EndnoteStyle();
Creates a new formatter object. Takes no arguments.
debug()
$olddebug = $style->debug(1);
Turns debugging on or off and returns the old debugging status. If an argument is provided, then
debugging is turned either on or off according to whether then argument is true or false. In any case,
the old value of the debugging status is returned, so that a call with no argument is a side-effect-free
inquiry.
When debugging is turned on, compiled templates are dumped to standard error. It is not pretty.
format()
($text, $errmsg) = $style->format($template, \%fields);
Formats a reference, consisting of a hash of fields, according to an Endnote-like template. The template
is a string essentially the same as those used in Endnote, as documented in the Endnote X User Guide at
http://www.endnote.com/support/helpdocs/EndNoteXWinManual.pdf pages 390ff. In particular, pages 415-210
have details of the recipe format. Because the templates used in this module are plain text, a few
special characters are used:
¬ Link adjacent words. This is the "non-breaking space" described on page 418 of the EndNote X
| Forced Separation of elements that would otherwise be dependent.
^ Separator for singular/plural aternatives.
` Used to prevent literal text from being interpreted as a fieldname.
The hash of fields is passed by reference: keys are fieldnames, and the corresponding values are the
data. PLEASE NOTE AN IMPORTANT DIFFERENCE. Keys that do not appear in the hash at all are not
considered to be fields, so that if they appear in the template, they will be interpreted as literal
text; keys that appear in the hash but whose values are undefined or empty are considered to be fields
with no value, and will be formatted as empty with dependent text omitted. So for example:
$style->format(";Author: ", { Author => "Taylor" }) eq ":Taylor: "
$style->format(";Author: ", { Author => "" }) eq ";"
$style->format(";Author: ", { xAuthor => "" }) eq ";Author: "
"format()" returns two values: the formatted reference and an error-message. The error message is
defined if and only if the formatted reference is not.