弐ch編集のPerl講座 (231レス)
上
下
前
次
1-
新
6
:
弐ch編集
02/02/15 08:05 ID:???
AA×
[
240
|
320
|
480
|600|
原寸
|
JPG
|
べ
|
レス栞
|
レス消
]
6: 弐ch編集 [sage] 02/02/15 08:05 ID:??? open(IN, './log.dat') or &error; @lines = <IN>; close(IN); これでファイルが読める。どうだ?Perlは俺と同じくらいすごいだろ? openでファイルハンドルINとファイルを結びつける。 openは失敗すると偽を返す。そうするとorが反応して&errorが呼ばれる。 &errorはてきとうなエラー表示関数な。or dieとしてdie関数を呼んでもいいが、 掲示板なら「ファイルが開けませんでした」とか表示したいだろ? だからわざわざエラー表示関数を呼ぶ。 で@lines。ファイルの改行までをひとつのデータとみて どんどん配列にぶちこまれるってわけだ。 そしてクローズ。これでINとファイルはきれいに手を切ることができる。 ところで、この方法にはいろいろ問題がある。配列にファイルの全データが 読み込まれる点だ。極端な話、ファイルが500MBあったらそれが全部配列に 代入されちまう。メモリ上に500MB読み込まれるってわけ。お前のパソコン メモリ何MB?64MB?即死だな。お前が一人で勝手に死ぬのはかまわんが、 サーバー上にはお前以外の人も住んでいるから、その人たちも迷惑をこうむる。 最悪だな。そんなんじゃお前は俺と同類だぞ?ようこそMegabbsへ。 じゃあどうすればいいのかっていうと、次。 http://medaka.5ch.net/test/read.cgi/php/1013725517/6
これでファイルが読めるどうだ?は俺と同じくらいすごいだろ? でファイルハンドルとファイルを結びつける は失敗すると偽を返すそうするとが反応してが呼ばれる はてきとうなエラー表示関数な として関数を呼んでもいいが 掲示板ならファイルが開けませんでしたとか表示したいだろ? だからわざわざエラー表示関数を呼ぶ でファイルの改行までをひとつのデータとみて どんどん配列にぶちこまれるってわけだ そしてクローズこれでとファイルはきれいに手を切ることができる ところでこの方法にはいろいろ問題がある配列にファイルの全データが 読み込まれる点だ極端な話ファイルがあったらそれが全部配列に 代入されちまうメモリ上に読み込まれるってわけお前のパソコン メモリ何??即死だなお前が一人で勝手に死ぬのはかまわんが サーバー上にはお前以外の人も住んでいるからその人たちも迷惑をこうむる 最悪だなそんなんじゃお前は俺と同類だぞ?ようこそへ じゃあどうすればいいのかっていうと次
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 225 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
ぬこの手
ぬこTOP
0.039s