man > YAML::Node

YAML::Node(3pm) User Contributed Perl Documentation YAML::Node(3pm)

πŸ“– NAME

YAML::Node - A generic data node that encapsulates YAML information

πŸš€ Quick Reference

Use Case Command Description
Create a YAML node with a type tag my $ynode = YAML::Node->new({}, 'ingerson.com/fruit'); Creates a tied hash ynode with a YAML type tag; the type tag is serialized as !ingerson.com/fruit
Control key order in YAML serialization ynode($ynode)->keys(['grape', 'apple']); Set the order of keys in the ynode; keys will appear in the given order on Dump
Access the tied object for special methods ynode($ynode)->keys(@keylist); Use the exported ynode() function to get the underlying tied object and call methods like keys()

πŸ“ SYNOPSIS

use YAML;
use YAML::Node;

my $ynode = YAML::Node->new({}, 'ingerson.com/fruit');
%$ynode = qw(orange orange apple red grape green);
print Dump $ynode;

yields:

--- !ingerson.com/fruit
orange: orange
apple: red
grape: green

πŸ“˜ DESCRIPTION

A generic node in YAML is similar to a plain hash, array, or scalar node in Perl except that it must also keep track of its type. The type is a URI called the YAML type tag.

YAML::Node is a class for generating and manipulating these containers. A YAML node (or ynode) is a tied hash, array or scalar. In most ways it behaves just like the plain thing. But you can assign and retrieve a YAML type tag URI to it. For the hash flavor, you can also assign the order that the keys will be retrieved in. By default a ynode will offer its keys in the same order that they were assigned.

YAML::Node has a class method call new() that will return a ynode. You pass it a regular node and an optional type tag. After that you can use it like a normal Perl node, but when you YAML::Dump it, the magical properties will be honored.

This is how you can control the sort order of hash keys during a YAML serialization. By default, YAML sorts keys alphabetically. But notice in the above example that the keys were Dumped in the same order they were assigned.

YAML::Node exports a function called ynode(). This function returns the tied object so that you can call special methods on it like keys().

keys() works like this:

use YAML;
use YAML::Node;

%$node = qw(orange orange apple red grape green);
$ynode = YAML::Node->new($node);
ynode($ynode)->keys(['grape', 'apple']);
print Dump $ynode;

produces:

---
grape: green
apple: red

It tells the ynode which keys and what order to use.

ynodes will play a very important role in how programs use YAML. They are the foundation of how a Perl class can marshall the Loading and Dumping of its objects.

The upcoming versions of YAML.pm will have much more information on this.

✍️ AUTHOR

Ingy dΓΆt Net <ingy AT cpan.org>

©️ COPYRIGHT

Copyright 2001-2014. Ingy dΓΆt Net

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See <http://www.perl.com/perl/misc/Artistic.html>

perl v5.30.0 2020-01-29 YAML::Node(3pm)

YAML::Node
πŸ“– NAME πŸš€ Quick Reference πŸ“ SYNOPSIS πŸ“˜ DESCRIPTION ✍️ AUTHOR ©️ COPYRIGHT

Generated by phpman v4.9.26-1-g511901d · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-07-27 08:10 @216.73.216.194
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!
Enhanced by LLM: deepseek-v4-flash / taotoken.net / www.chedong.com - original format