{
    "content": [
        {
            "type": "text",
            "text": "# YAML (perldoc)\n\n## NAME\n\nYAML - YAML Ain't Markup Language™\n\n## SYNOPSIS\n\nuse YAML;\n# Load a YAML stream of 3 YAML documents into Perl data structures.\nmy ($hashref, $arrayref, $string) = Load(<<'...');\n---\nname: ingy       # A Mapping\nage: old\nweight: heavy\n# I should comment that I also like pink, but don't tell anybody.\nfavorite colors:\n- red\n- green\n- blue\n---\n- Clark Evans    # A Sequence\n- Oren Ben-Kiki\n- Ingy döt Net\n--- >            # A Block Scalar\nYou probably think YAML stands for \"Yet Another Markup Language\". It\nain't! YAML is really a data serialization language. But if you want\nto think of it as a markup, that's OK with me. A lot of people try\nto use XML as a serialization format.\n\"YAML\" is catchy and fun to say. Try it. \"YAML, YAML, YAML!!!\"\n...\n# Dump the Perl data structures back into YAML.\nprint Dump($string, $arrayref, $hashref);\n# YAML::Dump is used the same way you'd use Data::Dumper::Dumper\nuse Data::Dumper;\nprint Dumper($string, $arrayref, $hashref);\nSince version 1.25 YAML.pm supports trailing comments.\n\n## DESCRIPTION\n\nThe YAML.pm module implements a YAML Loader and Dumper based on the YAML 1.0 specification.\n<http://www.yaml.org/spec/>\n\n## Sections\n\n- **NAME**\n- **VERSION**\n- **NOTE**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **WHY YAML IS COOL**\n- **YAML IMPLEMENTATIONS IN PERL**\n- **FUNCTIONAL USAGE** (3 subsections)\n- **GLOBAL OPTIONS**\n- **YAML TERMINOLOGY**\n- **YSH - THE YAML SHELL**\n- **RESOURCES**\n- **SEE ALSO**\n- **AUTHOR**\n- **COPYRIGHT AND LICENSE**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "YAML",
        "section": "",
        "mode": "perldoc",
        "summary": "YAML - YAML Ain't Markup Language™",
        "synopsis": "use YAML;\n# Load a YAML stream of 3 YAML documents into Perl data structures.\nmy ($hashref, $arrayref, $string) = Load(<<'...');\n---\nname: ingy       # A Mapping\nage: old\nweight: heavy\n# I should comment that I also like pink, but don't tell anybody.\nfavorite colors:\n- red\n- green\n- blue\n---\n- Clark Evans    # A Sequence\n- Oren Ben-Kiki\n- Ingy döt Net\n--- >            # A Block Scalar\nYou probably think YAML stands for \"Yet Another Markup Language\". It\nain't! YAML is really a data serialization language. But if you want\nto think of it as a markup, that's OK with me. A lot of people try\nto use XML as a serialization format.\n\"YAML\" is catchy and fun to say. Try it. \"YAML, YAML, YAML!!!\"\n...\n# Dump the Perl data structures back into YAML.\nprint Dump($string, $arrayref, $hashref);\n# YAML::Dump is used the same way you'd use Data::Dumper::Dumper\nuse Data::Dumper;\nprint Dumper($string, $arrayref, $hashref);\nSince version 1.25 YAML.pm supports trailing comments.",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "VERSION",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "NOTE",
                "lines": 13,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 35,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 8,
                "subsections": []
            },
            {
                "name": "WHY YAML IS COOL",
                "lines": 42,
                "subsections": []
            },
            {
                "name": "YAML IMPLEMENTATIONS IN PERL",
                "lines": 36,
                "subsections": []
            },
            {
                "name": "FUNCTIONAL USAGE",
                "lines": 4,
                "subsections": [
                    {
                        "name": "Exported Functions",
                        "lines": 16
                    },
                    {
                        "name": "Exportable Functions",
                        "lines": 5
                    },
                    {
                        "name": "freeze",
                        "lines": 57
                    }
                ]
            },
            {
                "name": "GLOBAL OPTIONS",
                "lines": 155,
                "subsections": []
            },
            {
                "name": "YAML TERMINOLOGY",
                "lines": 155,
                "subsections": []
            },
            {
                "name": "YSH - THE YAML SHELL",
                "lines": 22,
                "subsections": []
            },
            {
                "name": "RESOURCES",
                "lines": 9,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "COPYRIGHT AND LICENSE",
                "lines": 7,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "YAML - YAML Ain't Markup Language™\n",
                "subsections": []
            },
            "VERSION": {
                "content": "This document describes YAML version 1.30.\n",
                "subsections": []
            },
            "NOTE": {
                "content": "This module has been released to CPAN as YAML::Old, and soon YAML.pm will be changed to just be\na frontend interface module for all the various Perl YAML implementation modules, including\nYAML::Old.\n\nIf you want robust and fast YAML processing using the normal Dump/Load API, please consider\nswitching to YAML::XS. It is by far the best Perl module for YAML at this time. It requires that\nyou have a C compiler, since it is written in C.\n\nIf you really need to use this version of YAML.pm it will always be available as YAML::Old.\n\nThe rest of this documentation is left unchanged, until YAML.pm is switched over to the new\nUI-only version.\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "use YAML;\n\n# Load a YAML stream of 3 YAML documents into Perl data structures.\nmy ($hashref, $arrayref, $string) = Load(<<'...');\n---\nname: ingy       # A Mapping\nage: old\nweight: heavy\n# I should comment that I also like pink, but don't tell anybody.\nfavorite colors:\n- red\n- green\n- blue\n---\n- Clark Evans    # A Sequence\n- Oren Ben-Kiki\n- Ingy döt Net\n--- >            # A Block Scalar\nYou probably think YAML stands for \"Yet Another Markup Language\". It\nain't! YAML is really a data serialization language. But if you want\nto think of it as a markup, that's OK with me. A lot of people try\nto use XML as a serialization format.\n\n\"YAML\" is catchy and fun to say. Try it. \"YAML, YAML, YAML!!!\"\n...\n\n# Dump the Perl data structures back into YAML.\nprint Dump($string, $arrayref, $hashref);\n\n# YAML::Dump is used the same way you'd use Data::Dumper::Dumper\nuse Data::Dumper;\nprint Dumper($string, $arrayref, $hashref);\n\nSince version 1.25 YAML.pm supports trailing comments.\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "The YAML.pm module implements a YAML Loader and Dumper based on the YAML 1.0 specification.\n<http://www.yaml.org/spec/>\n\nYAML is a generic data serialization language that is optimized for human readability. It can be\nused to express the data structures of most modern programming languages. (Including Perl!!!)\n\nFor information on the YAML syntax, please refer to the YAML specification.\n",
                "subsections": []
            },
            "WHY YAML IS COOL": {
                "content": "YAML is readable for people.\nIt makes clear sense out of complex data structures. You should find that YAML is an\nexceptional data dumping tool. Structure is shown through indentation, YAML supports\nrecursive data, and hash keys are sorted by default. In addition, YAML supports several\nstyles of scalar formatting for different types of data.\n\nYAML is editable.\nYAML was designed from the ground up to be an excellent syntax for configuration files.\nAlmost all programs need configuration files, so why invent a new syntax for each one? And\nwhy subject users to the complexities of XML or native Perl code?\n\nYAML is multilingual.\nYes, YAML supports Unicode. But I'm actually referring to programming languages. YAML was\ndesigned to meet the serialization needs of Perl, Python, Ruby, Tcl, PHP, Javascript and\nJava. It was also designed to be interoperable between those languages. That means YAML\nserializations produced by Perl can be processed by Python.\n\nYAML is taint safe.\nUsing modules like Data::Dumper for serialization is fine as long as you can be sure that\nnobody can tamper with your data files or transmissions. That's because you need to use\nPerl's \"eval()\" built-in to deserialize the data. Somebody could add a snippet of Perl to\nerase your files.\n\nYAML's parser does not need to eval anything.\n\nYAML is full featured.\nYAML can accurately serialize all of the common Perl data structures and deserialize them\nagain without losing data relationships. Although it is not 100% perfect (no serializer is\nor can be perfect), it fares as well as the popular current modules: Data::Dumper, Storable,\nXML::Dumper and Data::Denter.\n\nYAML.pm also has the ability to handle code (subroutine) references and typeglobs. (Still\nexperimental) These features are not found in Perl's other serialization modules.\n\nYAML is extensible.\nThe YAML language has been designed to be flexible enough to solve it's own problems. The\nmarkup itself has 3 basic construct which resemble Perl's hash, array and scalar. By\ndefault, these map to their Perl equivalents. But each YAML node also supports a tagging\nmechanism (type system) which can cause that node to be interpreted in a completely\ndifferent manner. That's how YAML can support object serialization and oddball structures\nlike Perl's typeglob.\n",
                "subsections": []
            },
            "YAML IMPLEMENTATIONS IN PERL": {
                "content": "This module, YAML.pm, is really just the interface module for YAML modules written in Perl. The\nbasic interface for YAML consists of two functions: \"Dump\" and \"Load\". The real work is done by\nthe modules YAML::Dumper and YAML::Loader.\n\nDifferent YAML module distributions can be created by subclassing YAML.pm and YAML::Loader and\nYAML::Dumper. For example, YAML-Simple consists of YAML::Simple YAML::Dumper::Simple and\nYAML::Loader::Simple.\n\nWhy would there be more than one implementation of YAML? Well, despite YAML's offering of being\na simple data format, YAML is actually very deep and complex. Implementing the entirety of the\nYAML specification is a daunting task.\n\nFor this reason I am currently working on 3 different YAML implementations.\n\nYAML\nThe main YAML distribution will keeping evolving to support the entire YAML specification in\npure Perl. This may not be the fastest or most stable module though. Currently, YAML.pm has\nlots of known bugs. It is mostly a great tool for dumping Perl data structures to a readable\nform.\n\nYAML::Tiny\nThe point of YAML::Tiny is to strip YAML down to the 90% that people use most and offer that\nin a small, fast, stable, pure Perl form. YAML::Tiny will simply die when it is asked to do\nsomething it can't.\n\nYAML::Syck\n\"libsyck\" is the C based YAML processing library used by the Ruby programming language (and\nalso Python, PHP and Pugs). YAML::Syck is the Perl binding to \"libsyck\". It should be very\nfast, but may have problems of its own. It will also require C compilation.\n\nNOTE: Audrey Tang has actually completed this module and it works great and is 10 times\nfaster than YAML.pm.\n\nIn the future, there will likely be even more YAML modules. Remember, people other than Ingy are\nallowed to write YAML modules!\n",
                "subsections": []
            },
            "FUNCTIONAL USAGE": {
                "content": "YAML is completely OO under the hood. Still it exports a few useful top level functions so that\nit is dead simple to use. These functions just do the OO stuff for you. If you want direct\naccess to the OO API see the documentation for YAML::Dumper and YAML::Loader.\n",
                "subsections": [
                    {
                        "name": "Exported Functions",
                        "content": "The following functions are exported by YAML.pm by default. The reason they are exported is so\nthat YAML works much like Data::Dumper. If you don't want functions to be imported, just use\nYAML with an empty import list:\n\nuse YAML ();\n\nDump(list-of-Perl-data-structures)\nTurn Perl data into YAML. This function works very much like Data::Dumper::Dumper(). It\ntakes a list of Perl data structures and dumps them into a serialized form. It returns a\nstring containing the YAML stream. The structures can be references or plain scalars.\n\nLoad(string-containing-a-YAML-stream)\nTurn YAML into Perl data. This is the opposite of Dump. Just like Storable's thaw() function\nor the eval() function in relation to Data::Dumper. It parses a string containing a valid\nYAML stream into a list of Perl data structures.\n"
                    },
                    {
                        "name": "Exportable Functions",
                        "content": "These functions are not exported by default but you can request them in an import list like\nthis:\n\nuse YAML qw'freeze thaw Bless';\n"
                    },
                    {
                        "name": "freeze",
                        "content": "Aliases to Dump() and Load() for Storable fans. This will also allow YAML.pm to be plugged\ndirectly into modules like POE.pm, that use the freeze/thaw API for internal serialization.\n\nDumpFile(filepath, list)\nWrites the YAML stream to a file instead of just returning a string.\n\nLoadFile(filepath)\nReads the YAML stream from a file instead of a string.\n\nBless(perl-node, [yaml-node | class-name])\nAssociate a normal Perl node, with a yaml node. A yaml node is an object tied to the\nYAML::Node class. The second argument is either a yaml node that you've already created or a\nclass (package) name that supports a \"yamldump()\" function. A \"yamldump()\" function should\ntake a perl node and return a yaml node. If no second argument is provided, Bless will\ncreate a yaml node. This node is not returned, but can be retrieved with the Blessed()\nfunction.\n\nHere's an example of how to use Bless. Say you have a hash containing three keys, but you\nonly want to dump two of them. Furthermore the keys must be dumped in a certain order.\nHere's how you do that:\n\nuse YAML qw(Dump Bless);\n$hash = {apple => 'good', banana => 'bad', cauliflower => 'ugly'};\nprint Dump $hash;\nBless($hash)->keys(['banana', 'apple']);\nprint Dump $hash;\n\nproduces:\n\n---\napple: good\nbanana: bad\ncauliflower: ugly\n---\nbanana: bad\napple: good\n\nBless returns the tied part of a yaml-node, so that you can call the YAML::Node methods.\nThis is the same thing that YAML::Node::ynode() returns. So another way to do the above\nexample is:\n\nuse YAML qw(Dump Bless);\nuse YAML::Node;\n$hash = {apple => 'good', banana => 'bad', cauliflower => 'ugly'};\nprint Dump $hash;\nBless($hash);\n$ynode = ynode(Blessed($hash));\n$ynode->keys(['banana', 'apple']);\nprint Dump $hash;\n\nNote that Blessing a Perl data structure does not change it anyway. The extra information is\nstored separately and looked up by the Blessed node's memory address.\n\nBlessed(perl-node)\nReturns the yaml node that a particular perl node is associated with (see above). Returns\nundef if the node is not (YAML) Blessed.\n"
                    }
                ]
            },
            "GLOBAL OPTIONS": {
                "content": "YAML options are set using a group of global variables in the YAML namespace. This is similar to\nhow Data::Dumper works.\n\nFor example, to change the indentation width, do something like:\n\nlocal $YAML::Indent = 3;\n\nThe current options are:\n\nDumperClass\nYou can override which module/class YAML uses for Dumping data.\n\nLoadBlessed (since 1.25)\nDefault is undef (false)\n\nThe default was changed in version 1.30.\n\nWhen set to true, YAML nodes with special tags will be automatocally blessed into objects:\n\n- !perl/hash:Foo::Bar\nfoo: 42\n\nWhen loading untrusted YAML, you should disable this option by setting it to 0. This will\nalso disable setting typeglobs when loading them.\n\nYou can create any kind of object with YAML. The creation itself is not the critical part.\nIf the class has a \"DESTROY\" method, it will be called once the object is deleted. An\nexample with File::Temp removing files can be found at\n<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=862373>\n\nLoaderClass\nYou can override which module/class YAML uses for Loading data.\n\nIndent\nThis is the number of space characters to use for each indentation level when doing a\nDump(). The default is 2.\n\nBy the way, YAML can use any number of characters for indentation at any level. So if you\nare editing YAML by hand feel free to do it anyway that looks pleasing to you; just be\nconsistent for a given level.\n\nSortKeys\nDefault is 1. (true)\n\nTells YAML.pm whether or not to sort hash keys when storing a document.\n\nYAML::Node objects can have their own sort order, which is usually what you want. To\noverride the YAML::Node order and sort the keys anyway, set SortKeys to 2.\n\nStringify\nDefault is 0. (false)\n\nObjects with string overloading should honor the overloading and dump the stringification of\nthemselves, rather than the actual object's guts.\n\nNumify\nDefault is 0. (false)\n\nValues that look like numbers (integers, floats) will be numified when loaded.\n\nUseHeader\nDefault is 1. (true)\n\nThis tells YAML.pm whether to use a separator string for a Dump operation. This only applies\nto the first document in a stream. Subsequent documents must have a YAML header by\ndefinition.\n\nUseVersion\nDefault is 0. (false)\n\nTells YAML.pm whether to include the YAML version on the separator/header.\n\n--- %YAML:1.0\n\nAnchorPrefix\nDefault is ''.\n\nAnchor names are normally numeric. YAML.pm simply starts with '1' and increases by one for\neach new anchor. This option allows you to specify a string to be prepended to each anchor\nnumber.\n\nUseCode\nSetting the UseCode option is a shortcut to set both the DumpCode and LoadCode options at\nonce. Setting UseCode to '1' tells YAML.pm to dump Perl code references as Perl (using\nB::Deparse) and to load them back into memory using eval(). The reason this has to be an\noption is that using eval() to parse untrusted code is, well, untrustworthy.\n\nDumpCode\nDetermines if and how YAML.pm should serialize Perl code references. By default YAML.pm will\ndump code references as dummy placeholders (much like Data::Dumper). If DumpCode is set to\n'1' or 'deparse', code references will be dumped as actual Perl code.\n\nLoadCode\nLoadCode is the opposite of DumpCode. It tells YAML if and how to deserialize code\nreferences. When set to '1' or 'deparse' it will use \"eval()\". Since this is potentially\nrisky, only use this option if you know where your YAML has been.\n\nLoadCode must be enabled also to use the feature of evaluating typeglobs (because with the\ntypeglob feature you would be able to set the variable $YAML::LoadCode from a YAML file).\n\nPreserve\nWhen set to true, this option tells the Loader to load hashes into YAML::Node objects. These\nare tied hashes. This has the effect of remembering the key order, thus it will be preserved\nwhen the hash is dumped again. See YAML::Node for more information.\n\nUseBlock\nYAML.pm uses heuristics to guess which scalar style is best for a given node. Sometimes\nyou'll want all multiline scalars to use the 'block' style. If so, set this option to 1.\n\nNOTE: YAML's block style is akin to Perl's here-document.\n\nUseFold (Not supported anymore since v0.60)\nIf you want to force YAML to use the 'folded' style for all multiline scalars, then set\n$UseFold to 1.\n\nNOTE: YAML's folded style is akin to the way HTML folds text, except smarter.\n\nUseAliases\nYAML has an alias mechanism such that any given structure in memory gets serialized once.\nAny other references to that structure are serialized only as alias markers. This is how\nYAML can serialize duplicate and recursive structures.\n\nSometimes, when you KNOW that your data is nonrecursive in nature, you may want to serialize\nsuch that every node is expressed in full. (ie as a copy of the original). Setting\n$YAML::UseAliases to 0 will allow you to do this. This also may result in faster processing\nbecause the lookup overhead is by bypassed.\n\nTHIS OPTION CAN BE DANGEROUS. If your data is recursive, this option will cause Dump() to\nrun in an endless loop, chewing up your computers memory. You have been warned.\n\nCompressSeries\nDefault is 1.\n\nCompresses the formatting of arrays of hashes:\n\n-\nfoo: bar\n-\nbar: foo\n\nbecomes:\n\n- foo: bar\n- bar: foo\n\nSince this output is usually more desirable, this option is turned on by default.\n\nQuoteNumericStrings\nDefault is 0. (false)\n\nAdds detection mechanisms to encode strings that resemble numbers with mandatory quoting.\n\nThis ensures leading that things like leading/trailing zeros and other formatting are\npreserved.\n",
                "subsections": []
            },
            "YAML TERMINOLOGY": {
                "content": "YAML is a full featured data serialization language, and thus has its own terminology.\n\nIt is important to remember that although YAML is heavily influenced by Perl and Python, it is a\nlanguage in its own right, not merely just a representation of Perl structures.\n\nYAML has three constructs that are conspicuously similar to Perl's hash, array, and scalar. They\nare called mapping, sequence, and string respectively. By default, they do what you would\nexpect. But each instance may have an explicit or implicit tag (type) that makes it behave\ndifferently. In this manner, YAML can be extended to represent Perl's Glob or Python's tuple, or\nRuby's Bigint.\n\nstream\nA YAML stream is the full sequence of Unicode characters that a YAML\nparser would read or a YAML emitter would write. A stream may contain\none or more YAML documents separated by YAML headers.\n\n---\na: mapping\nfoo: bar\n---\n- a\n- sequence\n\ndocument\nA YAML document is an independent data structure representation within a stream. It is a top\nlevel node. Each document in a YAML stream must begin with a YAML header line. Actually the\nheader is optional on the first document.\n\n---\nThis: top level mapping\nis:\n- a\n- YAML\n- document\n\nheader\nA YAML header is a line that begins a YAML document. It consists of three dashes, possibly\nfollowed by more info. Another purpose of the header line is that it serves as a place to\nput top level tag and anchor information.\n\n--- !recursive-sequence &001\n- * 001\n- * 001\n\nnode\nA YAML node is the representation of a particular data structure. Nodes may contain other\nnodes. (In Perl terms, nodes are like scalars. Strings, arrayrefs and hashrefs. But this\nrefers to the serialized format, not the in- memory structure.)\n\ntag This is similar to a type. It indicates how a particular YAML node serialization should be\ntransferred into or out of memory. For instance a Foo::Bar object would use the tag\n'perl/Foo::Bar':\n\n- !perl/Foo::Bar\nfoo: 42\nbar: stool\n\ncollection\nA collection is the generic term for a YAML data grouping. YAML has two types of\ncollections: mappings and sequences. (Similar to hashes and arrays)\n\nmapping\nA mapping is a YAML collection defined by unordered key/value pairs with unique keys. By\ndefault YAML mappings are loaded into Perl hashes.\n\na mapping:\nfoo: bar\ntwo: times two is 4\n\nsequence\nA sequence is a YAML collection defined by an ordered list of elements. By default YAML\nsequences are loaded into Perl arrays.\n\na sequence:\n- one bourbon\n- one scotch\n- one beer\n\nscalar\nA scalar is a YAML node that is a single value. By default YAML scalars are loaded into Perl\nscalars.\n\na scalar key: a scalar value\n\nYAML has many styles for representing scalars. This is important because varying data will\nhave varying formatting requirements to retain the optimum human readability.\n\nplain scalar\nA plain scalar is unquoted. All plain scalars are automatic candidates for \"implicit\ntagging\". This means that their tag may be determined automatically by examination. The\ntypical uses for this are plain alpha strings, integers, real numbers, dates, times and\ncurrency.\n\n- a plain string\n- -42\n- 3.1415\n- 12:34\n- 123 this is an error\n\nsingle quoted scalar\nThis is similar to Perl's use of single quotes. It means no escaping except for single\nquotes which are escaped by using two adjacent single quotes.\n\n- 'When I say ''\\n'' I mean \"backslash en\"'\n\ndouble quoted scalar\nThis is similar to Perl's use of double quotes. Character escaping can be used.\n\n- \"This scalar\\nhas two lines, and a bell -->\\a\"\n\nfolded scalar\nThis is a multiline scalar which begins on the next line. It is indicated by a single right\nangle bracket. It is unescaped like the single quoted scalar. Line folding is also\nperformed.\n\n- >\nThis is a multiline scalar which begins on\nthe next line. It is indicated by a single\ncarat. It is unescaped like the single\nquoted scalar. Line folding is also\nperformed.\n\nblock scalar\nThis final multiline form is akin to Perl's here-document except that (as in all YAML data)\nscope is indicated by indentation. Therefore, no ending marker is required. The data is\nverbatim. No line folding.\n\n- |\nQTY  DESC          PRICE  TOTAL\n---  ----          -----  -----\n1  Foo Fighters  $19.95 $19.95\n2  Bar Belles    $29.95 $59.90\n\nparser\nA YAML processor has four stages: parse, load, dump, emit.\n\nA parser parses a YAML stream. YAML.pm's Load() function contains a parser.\n\nloader\nThe other half of the Load() function is a loader. This takes the information from the\nparser and loads it into a Perl data structure.\n\ndumper\nThe Dump() function consists of a dumper and an emitter. The dumper walks through each Perl\ndata structure and gives info to the emitter.\n\nemitter\nThe emitter takes info from the dumper and turns it into a YAML stream.\n\nNOTE: In YAML.pm the parser*loader and the dumper*emitter code are currently very closely\ntied together. In the future they may be broken into separate stages.\n\nFor more information please refer to the immensely helpful YAML specification available at\n<http://www.yaml.org/spec/>.\n",
                "subsections": []
            },
            "YSH - THE YAML SHELL": {
                "content": "libyaml-shell-perl contains a script called 'ysh', the YAML shell. ysh provides a simple,\ninteractive way to play with YAML. If you type in Perl code, it displays the result in YAML. If\nyou type in YAML it turns it into Perl code.\n\nTo run ysh, (assuming you installed it along with YAML.pm) simply type:\n\nysh [options]\n\nPlease read the \"ysh\" documentation for the full details. There are lots of options.\n\nBUGS & DEFICIENCIES\nIf you find a bug in YAML, please try to recreate it in the YAML Shell with logging turned on\n('ysh -L'). When you have successfully reproduced the bug, please mail the LOG file to the\nauthor (ingy@cpan.org).\n\nWARNING: This is still ALPHA code. Well, most of this code has been around for years...\n\nBIGGER WARNING: YAML.pm has been slow in the making, but I am committed to having top notch YAML\ntools in the Perl world. The YAML team is close to finalizing the YAML 1.1 spec. This version of\nYAML.pm is based off of a very old pre 1.0 spec. In actuality there isn't a ton of difference,\nand this YAML.pm is still fairly useful. Things will get much better in the future.\n",
                "subsections": []
            },
            "RESOURCES": {
                "content": "<http://lists.sourceforge.net/lists/listinfo/yaml-core> is the mailing list. This is where the\nlanguage is discussed and designed.\n\n<http://www.yaml.org> is the official YAML website.\n\n<http://www.yaml.org/spec/> is the YAML 1.2 specification.\n\n<http://yaml.kwiki.org> is the official YAML wiki.\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "*   YAML::XS\n",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Ingy döt Net <ingy@cpan.org>\n",
                "subsections": []
            },
            "COPYRIGHT AND LICENSE": {
                "content": "Copyright 2001-2020. Ingy döt Net.\n\nThis program is free software; you can redistribute it and/or modify it under the same terms as\nPerl itself.\n\nSee <http://www.perl.com/perl/misc/Artistic.html>\n",
                "subsections": []
            }
        }
    }
}