Text::BibTeX::Value - Online Linux Manual PageSection : 3
Updated : 2022-01-21
Source : perl v5.34.0
Note : User Contributed Perl Documentation

NAMEText::BibTeX::Value − interfaces to BibTeX values and simple values

SYNOPSIS​ use Text::BibTeX; ​ ​ $entry = Text::BibTeX::Entry−>new; ​ ​ # set the 'preserve_values' flag to 1 for this parse ​ $entry−>parse ($filename, $filehandle, 1); ​ ​ # 'get' method now returns a Text::BibTeX::Value object ​ # rather than a string ​ $value = $entry−>get ($field); ​ ​ # query the `Value' object (list of SimpleValue objects) ​ @all_values = $value−>values; ​ $first_value = $value−>value (0); ​ $last_value = $value−>value (−1); ​ ​ # query the simple value objects −− type will be one of BTAST_STRING, ​ # BTAST_MACRO, or BTAST_NUMBER ​ use Text::BibTex (':nodetypes'); # import "node type" constants ​ $is_macro = ($first_value−>type == BTAST_MACRO); ​ $text = $first_value−>text;

DESCRIPTIONThe Text::BibTeX::Value module provides two classes, ​Text::BibTeX::Value and Text::BibTeX::SimpleValue, which respectively give you access to BibTeX compound values and simple values. Recall that every field value in a BibTeX entry is the concatenation of one or more simple values, and that each of those simple values may be a literal string, a macro (abbreviation), or a number. Normally with ​Text::BibTeX, field values are fully processed, so that you only have access to the string that results from expanding macros, converting numbers to strings, concatenating all sub-strings, and collapsing whitespace in the resulting string. For example, in the following entry: ​ @article{homer97, ​ author = "Homer Simpson" # and # "Ned Flanders", ​ title = {Territorial Imperatives in Modern Suburbia}, ​ journal = jss, ​ year = 1997 ​ } we see the full range of options. The author field consists of three simple values: a string, a macro (and), and another string. The ​title field is a single string, and the journal and year fields are, respectively, a single macro and a single number. If you parse this entry in the usual way: ​ $entry = Text::BibTeX::Entry−>new($entry_text); then the get method on $entry would return simple strings. Assuming that the and macro is defined as " and ", then ​ $entry−>get ('author') would return the Perl string "Homer Simpson and Ned Flanders". However, you can also request that the library preserve the input values in your entries, i.e. not lose the information about which values use macros, which values are composed of multiple simple values, and so on. There are two ways to make this request: per-file and per-entry. For a per-file request, use the preserve_values method on your File object: ​ $bibfile = Text::BibTeX::File−>new($filename); ​ $bibfile−>preserve_values (1); ​ ​ $entry = Text::BibTeX::Entry−>new($bibfile); ​ $entry−>get ($field); # returns a Value object ​ ​ $bibfile−>preserve_values (0); ​ $entry = Text::BibTeX::Entry−>new($bibfile); ​ $entry−>get ($field); # returns a string If you're not using a File object, or want to control things at a finer scale, then you have to pass in the preserve_values flag when invoking read, parse, or parse_s on your Entry objects: ​ # no File object, parsing from a string ​ $entry = Text::BibTeX::Entry−>new; ​ $entry−>parse_s ($entry_text, 0); # preserve_values=0 (default) ​ $entry−>get ($field); # returns a string ​ ​ $entry−>parse_s ($entry_text, 1); ​ $entry−>get ($field); # returns a Value object ​ ​ # using a File object, but want finer control ​ $entry−>read ($bibfile, 0); # now get will return strings (default) ​ $entry−>read ($bibfile, 1); # now get will return Value objects A compound value, usually just called a value, is simply a list of simple values. The Text::BibTeX::Value class (hereinafter abbreviated as Value) provides a simple interface to this list; you can request the whole list, or an individual member of the list. The ​SimpleValue class gives you access to the innards of each simple value, which consist of the type and the text. The type just tells you if this simple value is a string, macro, or number; it is represented using the Perl translation of the node type enumeration from C. The possible types are BTAST_STRING, BTAST_NUMBER, and ​BTAST_MACRO. The text is just what appears in the original entry text, be it a string, number, or macro. For example, we could parse the above entry in preserve values mode as follows: ​ $entry−>parse_s ($entry_text, 1); # preserve_values is 1 Then, using the get method on $entry would return not a string, but a Value object. We can get the list of all simple values using the values method, or a single value using value: ​ $author = $entry−>get ('author'); # now a Text::BibTeX::Value object ​ @all_values = $author−>values; # array of Text::BibTeX::SimpleValue ​ $second = $author−>value (1); # same as $all_values[1] The simple values may be queried using the Text::BibTeX::SimpleValue methods, type and text: ​ $all_values[0]>type; # returns BTAST_STRING ​ $second−>type; # returns BTAST_MACRO ​ ​ $all_values[0]>text; # "Homer Simpson" ​ $second−>text; # "and" (NOT the macro expansion!) ​ ​ $entry−>get ('year')>value (0)>text; # "1997"

METHODSNormally, you won't need to create Value or SimpleValue objects−−−they'll be created for you when an entry is parsed, and returned to you by the get method in the Entry class. Thus, the query methods (values and value for the Value class, type and text for SimpleValue) are probably all you need to worry about. If you wish, though, you can create new values and simple values using the two classes' respective constructors. You can also put newly-created Value objects back into an existing Entry object using the set entry method; it doesn't matter how the entry was parsed, this is acceptable anytime.

Text::BibTeX::Value methodsnew (SVAL, ...) Creates a new Value object from a list of simple values. Each simple value, SVAL, may be either a SimpleValue object or a reference to a two-element list containing the type and text of the simple value. For example, one way to recreate the author field of the example entry in ​DESCRIPTION would be: ​ $and_macro = Text::BibTeX::SimpleValue−>new (BTAST_MACRO, 'and'); ​ $value = Text::BibTeX::Value−>new ​ ([BTAST_STRING, 'Homer Simpson'], ​ $and_macro, ​ [BTAST_STRING, 'Ned Flanders']); The resulting Value object could then be installed into an entry using the set method of the Entry class. values () Returns the list of SimpleValue objects that make up a Value object. value (NUM) Returns the NUM'th SimpleValue object from the list of SimpleValue objects that make up a Value object. This is just like a Perl array reference: NUM is zero-based, and negative numbers count from the end of the array.

Text::BibTeX::SimpleValue methodsnew (TYPE, TEXT) Creates a new SimpleValue object with the specified TYPE and TEXT. TYPE must be one of the allowed types for BibTeX simple values, i.e. BTAST_STRING, BTAST_NUMBER, or BTAST_MACRO. You'll probably want to import these constants from Text::BibTeX using the ​nodetypes export tag: ​ use Text::BibTeX qw(:nodetypes); TEXT may be any string. Note that if TYPE is BTAST_NUMBER and TEXT is not a string of digits, the SimpleValue object will be created anyways, but a warning will be issued. No warning is issued about non-existent macros. type () Returns the type of a simple value. This will be one of the allowed ​node types as described under new above. text () Returns the text of a simple value. This is just the text that appears in the original entry−−−unexpanded macro name, or unconverted number. (Of course, converting numbers doesn't make any difference from Perl; in fact, it's all the same in C too, since the C code just keeps numbers as strings of digits. It's simply a matter of whether the string of digits is represented as a string or a number, which you might be interested in knowing if you want to preserve the structure of the input as much possible.)

SEE ALSOText::BibTeX, Text::BibTeX::File, Text::BibTeX::Entry

AUTHORGreg Ward <gward@python.net>

COPYRIGHTCopyright (c) 1997−2000 by Gregory P. Ward. All rights reserved. This file is part of the Text::BibTeX library. This library is free software; you may redistribute it and/or modify it under the same terms as Perl itself.
0
Johanes Gumabo
Data Size   :   29,499 byte
man-Text::BibTeX::Value.3pmBuild   :   2024-12-05, 20:55   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   3 / 200,641
Visitor ID   :     :  
Visitor IP   :   3.12.163.120   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.

ERROR : Need New Coding :         (parse_manual_page_|249|Text::BibTeX::Value.3pm|36/37|el══─{─══.|.el══─{─══. ds -- \|\(em\| )         (htmlprn|149|Text::BibTeX::Value.3pm|36/37|.el══─{─══. ds --  —  |.el══─{─══. ds -- \|\(em\| )         (parse_manual_page_|249|Text::BibTeX::Value.3pm|43|br══─}─══|'br══─}─══ )         (htmlprn|149|Text::BibTeX::Value.3pm|43|'br══─}─══ |'br══─}─══ )