Perl モジュール LWP を使ってファイルをダウンロードするメモです。
スクリプトを書くなかでファイルをダウンロードしたくなる事があるので LWP::UserAgent を使って書いてみました。
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
my $url = 'https://worklog.be/file.zip';
my $file = '/tmp/file.zip';
my $ua = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)';
my $timeout = '10';
my $lwp = LWP::UserAgent->new( agent => $ua, timeout => $timeout );
## コンテンツの取得
my $res = $lwp->get( $url, ':content_file' => $file );
## ダウンロード成功時
if ( $res->is_success ) {
print "success\n";
## ダウンロード失敗時
} else {
print "error\n";
}
exit;
ちなみに、LWP を使わずに wget コマンドでやろうとするとこんな感じ。
my $url = 'https://worklog.be/file.zip'; my $file = '/tmp/file.zip'; `/usr/local/bin/wget -O $file $url`;
エラー処理はいれてないですがシンプルだし、動作的にもこっちのほうが早いと思います。
でも、モジュールの使い方を一度覚えると、以降はわざわざモジュールを介して処理させたくなるのが Perl の不思議な所です。