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 の不思議な所です。