我是Mojolicious的新手。我相信這可能是一個設置問題,但它被吃掉了整整一天。我試圖運行這個簡單的測試代碼找不到使用Mojo的模塊:: DOM
#!/usr/bin/perl
use strict;
use warnings;
use Mojo::DOM;
use Mojo::UserAgent;
my $ua = Mojo::UserAgent->new();
$ua->get('https://stackoverflow.com/questions/26353298/find-links-containing-bold-text-using-wwwmechanize')->res->dom('a div')->ancestors('div.spacer')->each(sub { say $_->all_text });
,我發現在這個位置
find links containing bold text using WWW::Mechanize
,並與
Can't locate object method "ancestors" via package "Mojo::Collection" at ./test4.pl line 10.
我已經卸載並重新安裝失敗10萬次,嘗試了不同的軟件包安裝選項(cpan,cpanm,direct link等)。沒有骰子。我有點困惑,Mojo :: Collection模塊似乎沒有一個「祖先」方法(繼承或不),但我見過其他幾個像這樣的例子,似乎使用相同的方法以相同的方式。這不僅僅是「祖先」模塊,問題似乎也在影響其他一些方法。
我在使用Mojolicious軟件包6.11的Linux Mint上使用perl 5.18.2。
感謝您的任何幫助。
謝謝!現在正在工作。我不瞭解第一個和最後一個節點業務。現在我明白它正在向我傳遞一組數據結構中的節點。 是的,原來是有點太緊湊,開始與(尤其是因爲我現在只是現在熟悉自己的Mojo)。 再次感謝。 –
@JimSimmonds:我很高興提供幫助:Mojolicious是一個不錯的框架。我只希望它支持XPath表達式以及CSS選擇器。 'first'和'last'只是從Mojo :: Collection中提取一個Mojo :: DOM對象的例子。你也可以使用'each'來返回一個節點列表,你可以像數組引用那樣索引它,所以'$ collection-> first'和'$ collection - > [0]'是一樣的。 – Borodin
@JimSimmonds :我建議你看看[***當某人回答我的問題時該怎麼辦?***](http://stackoverflow.com/help/someone-answers) – Borodin