# snippet my $data = "anything you want"; DumpFile( "/path/to/file", $data ); my $newdata = LoadFile( "/path/to/file" ); # now $data == $newdata #### #!/usr/bin/perl use strict; use warnings; use YAML qw/ LoadFile DumpFile Dump /; use Data::Dumper; local $Data::Dumper::Indent = 1; use constant DIV => '-' x 20 . "\n"; my $routers = { 'routers' => { 'router1' => '192.168.1.2', 'router2' => '192.168.1.3', 'router3' => '192.168.1.4', 'router4' => '192.168.1.5', 'router5' => '192.168.1.6', } }; my $groups = { 'groups' => { 'group1' => [ 'router1', 'router5', ], 'group2' => [ 'router1', 'router2', 'router3', ], 'group3' => [ 'router2', 'router3', 'router4', ] } }; print "Dumping initial data...\n" . DIV; print Dumper $routers, $groups; print "Writing YAML file...\n"; DumpFile( "./yaml-test.conf", $routers, $groups ); print "Reading YAML file...\n"; ( $routers, $groups ) = LoadFile( "yaml-test.conf" ); print "Dumping YAML'd data...\n" . DIV; print Dumper $routers, $groups; print "Dumping YAML'd data with YAML...\n" . DIV; print Dump $routers, $groups; #### Dumping initial data... -------------------- $VAR1 = { 'routers' => { 'router5' => '192.168.1.6', 'router1' => '192.168.1.2', 'router3' => '192.168.1.4', 'router4' => '192.168.1.5', 'router2' => '192.168.1.3' } }; $VAR2 = { 'groups' => { 'group2' => [ 'router1', 'router2', 'router3' ], 'group1' => [ 'router1', 'router5' ], 'group3' => [ 'router2', 'router3', 'router4' ] } }; Writing YAML file... Reading YAML file... Dumping YAML'd data... -------------------- $VAR1 = { 'routers' => { 'router5' => '192.168.1.6', 'router1' => '192.168.1.2', 'router3' => '192.168.1.4', 'router4' => '192.168.1.5', 'router2' => '192.168.1.3' } }; $VAR2 = { 'groups' => { 'group2' => [ 'router1', 'router2', 'router3' ], 'group1' => [ 'router1', 'router5' ], 'group3' => [ 'router2', 'router3', 'router4' ] } }; Dumping YAML'd data with YAML... -------------------- --- #YAML:1.0 routers: router1: 192.168.1.2 router2: 192.168.1.3 router3: 192.168.1.4 router4: 192.168.1.5 router5: 192.168.1.6 --- #YAML:1.0 groups: group1: - router1 - router5 group2: - router1 - router2 - router3 group3: - router2 - router3 - router4