YAML::Node(3)

πŸ’– YAML::Node(3) πŸ’–

User Contributed Perl Documentation ✨ (yes bestie, that's the manual family this lil page lives in)


🌸 NAME 🌸

YAML::Node β€” a generic data node that encapsulates YAML information πŸ¦‹


✨ 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;

and that lil guy yields:

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

like… it ATE πŸ’…


πŸ‘‘ DESCRIPTION πŸ‘‘

okay so picture a normal hash, or array, or scalar in Perl. A generic node in YAML is literally that, except it also has to keep track of its type. And that type? It's a URI, and we call it the YAML type tag. no cap.

YAML::Node is the class for generating and manipulating these containers. A YAML node (or ynode, iconic nickname fr) is a tied hash, array or scalar. In most ways it behaves just like the plain thing, bestie. But you can assign and retrieve a YAML type tag URI to it. And 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. main character energy tbh.

YAML::Node has a class method called 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. lowkey a glow-up.

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;

and it produces:

---
grape: green
apple: red

It tells the ynode which keys and what order to use. periodt. πŸ”₯

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. it's giving foundational, honestly.

The upcoming versions of YAML.pm will have much more information on this. πŸ‘€ (so stay tuned bestie, more lore incoming)

πŸŽ€ AUTHOR πŸŽ€

Ingy dΓΆt Net <ingy@cpan.org> πŸ’Œ


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>


and that's the whole vibe check, bestie πŸ¦‹ β€” this was YAML::Node(3), brought to you by perl v5.42.2, dated 2026-07-27. mwah πŸ’…βœ¨

πŸ“¦ where this page comes from