您的错误消息是有道理的. look_down方法需要一个哈希(当然是一个列表).你给它三个元素,所以最后一个是一个键.请记住=>也被称为胖逗号,只是一种更易读的写入方式.不过,这是一个奇怪的错误信息.
您需要做的是先解析< div>,然后解析< p> s.你不能一次性使用HTML :: TreeBuilder.您将从第一个foreach获取每个< div>的HTML :: Element对象.让他们看看< p> s.
use strict;
use warnings;
use feature qw( say );
use HTML::TreeBuilder 5 -weak;
my $tree = HTML::TreeBuilder->new_from_content();
foreach my $e ($tree->look_down(_tag => 'div')) {
foreach my $f ($e->look_down(_tag => 'p')) {
say $f->as_text;
}
}
__DATA__
hello world
hello again