如何使用Mojo :: DOM设置节点的属性?

sim*_*one 3 perl mojolicious

我正在尝试使用Mojo :: DOM设置属性,如下所示:

use Mojo::DOM;

my $a = Mojo::DOM->new('<a></a>');
my $a = $a->attr({ 'href' => 'https://foo/bar' });
print $a;
Run Code Online (Sandbox Code Playgroud)

我希望它能打印

<a href="https://foo/bar"></a>
Run Code Online (Sandbox Code Playgroud)

但我明白了

<a></a>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

zdi*_*dim 5

需要首先找到并返回其属性已更改的元素

use warnings;
use strict;
use feature 'say';
use Mojo::DOM;

my $dom = Mojo::DOM->new('<a></a>');

$dom->at('a')->attr({ 'href' => 'https://foo/bar' });

say $dom;
Run Code Online (Sandbox Code Playgroud)

这是必需的,因为整个树没有“属性”。正如文档开头所说

虽然所有节点类型都表示为Mojo::DOM对象,但某些方法类似于attr并且namespace仅适用于元素。

(“ elements ”是“ tag”类型的节点,请参见链接)