Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
YAML::Node(3)	      User Contributed Perl Documentation	 YAML::Node(3)

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

	   use YAML;
	   use YAML::Node;

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


	   --- !
	   orange: orange
	   apple: red
	   grape: green

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


	   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	will have much more information	on

       Ingy dA<paragraph>t Net <>

       Copyright 2001-2014. Ingy dA<paragraph>t	Net

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

       See <>

perl v5.32.1			  2020-01-27			 YAML::Node(3)


Want to link to this manual page? Use this URL:

home | help