2

1つの要素のancestors_or_selfを表示する方法がわかりません。

メソッドancestors_or_self()を使用したときに表示されるエラーメッセージは次のとおりです 。xxxxのパッケージまたはオブジェクト参照なしでメソッド「print」を呼び出すことはできません。

#!/usr/bin/perl -w
use warnings;
use XML::Twig;

my $t= XML::Twig->new;
my $v= XML::Twig::Elt->new;

$v= $t->first_elt('[@id]');
$v->print;
print ("\n\n");
$v->ancestors_or_self->print;

Perl XML::Twigにご協力いただきありがとうございます

4

2 に答える 2

2

これancestors_or_selfは、リストを返し、listのメソッドを呼び出すことができないためです。代わりにこれを使用してください:

$_->print for $v->ancestors_or_self; 
于 2012-06-15T10:46:46.660 に答える
2

ancestors_or_selfリストを返します-要素へのパスが必要であると仮定すると、も必要->pathありません->print。そして、パスを->path 返すように、次のようなことをする必要があります。

#!/usr/bin/perl -w
use warnings;
use XML::Twig;

my $t= XML::Twig->new;
my $v= XML::Twig::Elt->new;

$v= $t->first_elt('[@id]');
print $v->path . "\n";
print ("\n\n");
print $_->path . "\n" foreach $v->ancestors_or_self;
于 2012-06-16T03:07:35.110 に答える