• 締切済み

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; }

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

> Error:Invalid argument at C:User~~~となってしまいます。 この省略されている箇所に、行番号が書いてあるはずなのですが。 それは、どこなのでしょうか? エラーメッセージのヒント無しにプログラムを読むのは面倒です。 > my @url =<IN> ; <>で読み込んだときは、改行も含みます。 改行を取り除いている様子がありません

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

よくわからんけど, 個人的には open($OUT, ">","$time$i$prefix") or die("Error:$!"); のところを open(my $OUT, ">","$time$i$prefix") or die("Error:$!"); としたい気分. ちなみに拡張子を prefix と呼ぶことはあり得ないので, そこんところも気を付けるべし.

関連するQ&A

専門家に質問してみよう