my($filename) = @_; my(@lines); if(open(FILE, $filename)) { # ファイルロード #@lines =; foreach( ){ push(@lines, $_); } close FILE; return @lines; }else{ return (); }
このようなコードでファイルを読み込んで配列にしまう場合、
foreach(
ストリームクラスなどを使って一発で読み込むのが一般的になった今となっては、ちょっと忘れがちな問題です。
foreach(){ push(@lines, $_); }
ではなく、
foreach(){ s/[\n\r]+///; push(@lines, $_); }
とすれば何とかなります。chomp関数でも良いのかな、よく分らないですが。
えーっと、上のコードではコメントアウトしてる、@lines =
この構文はCPUを食うからCGIとしては非推奨だとか言う話をどこかで聞いた気がするんですが…。どこだったかなぁ…。