use strict; use lib -e 't' ? 't' : 'test'; use TestYAML tests => 2; package Foo::Bar; use TestYAMLBase; our @ISA = 'TestYAMLBase'; sub yaml_dump { my $self = shift; my $node = YAML::Node->new({ two => $self->{two} - 1, one => $self->{one} + 1, }, 'perl/Foo::Bar'); YAML::Node::ynode($node)->keys(['two', 'one']); return $node; } sub yaml_load { my $class = shift; my $node = shift; my $self = $class->new; $self->{one} = ($node->{one} - 1); $self->{two} = ($node->{two} + 1); return $self; } package main; no_diff; run_roundtrip_nyn; __END__ === Object class handles marshalling +++ perl my $fb = Foo::Bar->new(); $fb->{one} = 5; $fb->{two} = 3; $fb; +++ yaml --- !perl/Foo::Bar two: 2 one: 6