2004/02/15(Sun) 21:20:03 編集(投稿者)
〜略
}elsif($file=~/.bmp$/i){ #BMP
open(BMP,"$i_dir/$file");
binmode(BMP);
seek(BMP,18,0);
read(BMP,$size,8);
close(BMP);
($IW,$IH)=unpack("V2",$size);
}
&er_("サイズが大きすぎます!");
}
・・・の場合はエラーが出ません。
これを、
〜略
}elsif($file=~/.bmp$/i){ #BMP
open(BMP,"$i_dir/$file");
binmode(BMP);
seek(BMP,18,0);
read(BMP,$size,8);
close(BMP);
($IW,$IH)=unpack("V2",$size);
}
}
&er_("サイズが大きすぎます!");
・・・とするとエラーが表示されます。(変数$IW,$IHを書いた場合も同様)
未熟ながら自分でも調べてみましたが、変数の有効範囲(グローバル変数?)と関係あるのでしょうか?
見当違いなことを言っているのかもしれませんが、アドバイスをお願いします。
あと勉強不足ながら以下のような事も試してみましたが、やはりダメでした。
if(-e "$i_dir/$file"){
if($file=~/.gif$/i){ #GIF
open(GIF,"$i_dir/$file");
binmode(GIF);
seek(GIF,6,0);
read(GIF,$size,4);
close(GIF);
($IW,$IH)=unpack("vv",$size);
}elsif($file=~/.png$/i){ #PNG
open(PNG,"$i_dir/$file");
〜途中略
}elsif($file=~/.bmp$/i){ #BMP
open(BMP,"$i_dir/$file");
binmode(BMP);
seek(BMP,18,0);
read(BMP,$size,8);
close(BMP);
($IW,$IH)=unpack("V2",$size);
}
&er_("サイズが大きすぎます! / (高さ$IW / 幅$IH)");
}
}