#!/bin/env perl use strict; use warnings; use XML::Simple; # From https://metacpan.org/pod/XML::Simple#QUICK-START my $data = { 'logdir' => '/var/log/foo/', 'debugfile' => '/tmp/foo.debug', 'server' => { 'sahara' => { 'osversion' => '2.6', 'osname' => 'solaris', 'address' => [ '10.0.0.101', '10.0.1.101' ] }, 'gobi' => { 'osversion' => '6.5', 'osname' => 'irix', 'address' => [ '10.0.0.102' ] }, 'kalahari' => { 'osversion' => '2.0.34', 'osname' => 'linux', 'address' => [ '10.0.0.103', '10.0.1.103' ] } } }; print "XMLout with data defined:\n\n", xml_out($data), "\n\n"; #print "XMLout with data undefined:\n\n", xml_out(undef), "\n\n"; sub xml_out { my $data = shift; my $xmlout = XMLout($data, NoAttr => 1, RootName => undef, SuppressEmpty => 0); return '' . "\n$xmlout"; }