除非您有其他要求(例如在下載過程中觀看速率和大小),否則您列出的步驟是最容易考慮和實施的步驟。
您可以導出LWP :: Simple中的底層用戶代理對象。如果你只是想觀看下載一次性的,你可以設置show_progress
位用戶代理的:
use LWP::Simple qw($ua getstore);
$ua->show_progress(1);
getstore(
'http://www.theperlreview.com/Issues/subscribers.html',
'subscribers.html'
);
做更多的工作,你可以使用LWP ::簡單,仍然做same thing ysth suggests :
use LWP::Simple qw($ua);
$ua->response_header(
sub {
my($response, $ua, $h) = @_;
...
}
);
在該子程序中,您讀取數據並執行任何您喜歡的操作,包括保留計時器。一旦你得到你的答案,你可以刪除這一點的代碼,並返回到getstore
。
弗拉維奧波萊蒂寫了「觀看LWP的活動」爲The Perl Review, Spring 2009,並顯示了這種技術的許多用途。
感謝您的迴應和例子。弗拉維奧波萊蒂的一頁寫作也很有用和簡潔。 – vlee 2009-11-25 02:34:09
我沒有發現弗拉維奧的一頁寫作簡潔。此外,這個答案並沒有幫助我。我有一個需要下載的非常大的文件,在下載時,我需要使用命名管道將消息發回我的GUI(用Objective C編寫)。我有管道的事情,但還不知道LWP字節迭代器,因爲它下載。 – Volomike 2015-12-02 10:50:40