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 π
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
- fedora 43: perl-YAML 1.32.1-1.fc43 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- fedora 44: perl-YAML 1.32.1-1.fc44 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms