use strict; use warnings; use XML::Twig; my $stream_id = 'stream-id'; my $event_name = 'event-name'; my $time_t = 'time-t'; my $filename = 'foo.xml'; my $twig = XML::Twig->new(pretty_print => 'record'); $twig->parse(''); my $root = $twig->root(); $root->insert_new_elt('stream-id' => $stream_id); my $event_tag = $root->insert_new_elt('event-name' => $event_name); my $primary_event_tag = $event_tag->insert_new_elt('primary-event'); $primary_event_tag->insert_new_elt('delete-time' => $time_t); open(my $FH, '>', $filename); $twig->flush(\*$FH); close $FH;