为什么我的 XML 文件在用 XML::LibXML 生成后是空的

Why is my XML file empty after generating with XML::LibXML

这是我的 perl 脚本

#!/usr/bin/perl

use XML::LibXML;
$doc = XML::LibXML::Document->new;

my $root = $doc->createElement("log");
$root -> setAttribute("time" => "now");

my $tag = $doc->createElement("greeting");

my $value = "hello";
$tag -> appendTextNode($value);
$root -> appendChild($tag);

$doc -> toFile('test.xml');

然而,输出文件test.xml只包含这一行:

<?xml version="1.0"?>

我认为这意味着 xml 文件已创建但未向其中添加任何内容。我没有收到任何错误,所以我不知道去哪里找。我做错了什么?

您需要将您创建的元素添加到文档中:

$doc->setDocumentElement($root);