- 締切済み
perlで画像をダウンロードしようと思っています
gazou_element.txtにurlを保存していて、それらを一つずつ取り出してダウンロードするようにしようとしているのですがError:Invalid argument at C:User~~~となってしまいます。 どうすればいいかよろしければお教え下さい。 use Encode; use LWP::UserAgent; use IPC::Open2; use warnings; $file = "gazou_element.txt"; open (IN, $file) or die "$!"; my @url =<IN> ; my $time = time; for(my $i = 0; $i < scalar(@url); $i++){ my $request = HTTP::Request->new('GET', $url[$i]); my $ua = LWP::UserAgent->new; $ua->agent('Mozilla/4.0'); my $response = $ua->request($request); my $prefix = get_prefix($url[$i]); my $count = $i + 1; if($response->is_success){ open($OUT, ">","$time$i$prefix") or die("Error:$!"); binmode $OUT; print $OUT $response->content; close $OUT; }else{ } } #拡張子を取得する sub get_prefix{ my $url = shift; my $start = rindex($url, "."); my $end = length($url); my $string = substr($url, $start, $end - $start); return $string; }
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
> Error:Invalid argument at C:User~~~となってしまいます。 この省略されている箇所に、行番号が書いてあるはずなのですが。 それは、どこなのでしょうか? エラーメッセージのヒント無しにプログラムを読むのは面倒です。 > my @url =<IN> ; <>で読み込んだときは、改行も含みます。 改行を取り除いている様子がありません
- Tacosan
- ベストアンサー率23% (3656/15482)
よくわからんけど, 個人的には open($OUT, ">","$time$i$prefix") or die("Error:$!"); のところを open(my $OUT, ">","$time$i$prefix") or die("Error:$!"); としたい気分. ちなみに拡張子を prefix と呼ぶことはあり得ないので, そこんところも気を付けるべし.