- 49 名前:名無しさん@お腹いっぱい。 mailto:sage [01/10/17 08:37 ID:???]
- > my ($i, $count) = (0,0);
> foreach (@source){ > if ($source[$i] =~ /<!--count-->([\d]+)<!--\/count-->/ig) { > $count = $1; > $count++; > $source[$i] =~ s/<!--count-->[\d]+<!--\/count-->/<!--count-->$count<!--\/count-->/ig; > } > $i++; > } こんなわけのわからない処理は止めなさい。 foreachの使い方がわかってない。 あと、変換はs///eg一発で出来るよ。 もっと言うと、テンポラリファイルに書き出してからrenameしたほうがいい。 openの戻り値はきちんとチェックしようね。 &lock_file; open SRC "$source" or die; open TMP "> $tmp" or die; while (<SRC>) { s///eg; print TMP $_; } close SRC; close TMP; rename($tmp, $source); &unlock_file; こんな流れで。
|

|