csvファイルが存在するかどうか確認するためif節でheadを使っています
$data_hokkaido = "http://denkiyoho.hepco.co.jp/data/juyo_hokkaidou.csv";
if (head "$data_hokkaido" ){
use LWP::Simple;
$content = get($data_hokkaido);
}
こうするとエラーになるのでperlチェックをしてみたところ
String found where operator expected at test.cgi line 393, near "head "$data_hokkaido""
(Do you need to predeclare head?)
と警告が出ました
if節を外して
$data_hokkaido = "http://denkiyoho.hepco.co.jp/data/juyo_hokkaidou.csv";
use LWP::Simple;
$content = get($data_hokkaido);
とするとエラーは出ず、問題なくデータ取得できるので、headに原因があるのだと思いますが、具体的に何が悪いのでしょうか?
ちなみに何のデータを取得しているかと言いますと、電力各社の電気予報のデータで、
エラーが出るのは北海道電力ので、同じようにファイルがダウンロードされる形式になっている関西電力部分
$data_kansai = "http://www.kepco.co.jp/yamasou/juyo1_kansai.csv";
if (head "$data_kansai" ){
use LWP::Simple;
$content = get($data_kansai);
}
ではエラーは出ません
理由がお分かりの方ぜひ教えてください。
よろしくお願いします。
お礼
ありがとうございます。 use LWP::Simple;はgetにだけ必要とばかり思っておりました それで、北電と関電以外もデータを取っていたのですが、北海道電力の次に東北電力のデータを取っており、そこだけif節を入れるのを忘れていて、そこでuse LWP::Simple;を記述しており、その後に関西電力があったので、その記述が有効だったため関西電力の方ではエラーにならなかったようです 勉強になりました