On Mon, 12 Jan 2004 04:10:46 +0900 (JST)
wtnabe@... (ねこ丸) さんwrote:
> /^\s*$/
>
> にしてしまえばどっちでも一緒ですし、以前の空行、空白行という話が
> どういう定義を与えていたのか分からないので、なんとも言えませんけどね。
空行の定義の問題ですが、Perlの場合は複行レコードの取り扱いに絡んでいま
すので、空白行と空行は区別しておいたほうがよいですね。
通常、テキストデータは改行で区切られた行単位のレコードで取り扱うので、
レコードのセパレータは、"\n"です。$/="\n";がデフォルトで定義されているわ
けです。複行レコードというのは今回の水羽さんの示されたような複数行から
なるレコードで、レコードの区切りが空行になっているのです。この場合、空白
行は区切りとして取り扱いません。空白というデータがあるからですね。逆にデー
タの中に空行があると複行レコードとして取り扱えなくなります。
複行レコードのセパレータは、通常、$/="";と明示的にセットする必要があり
ます。この空文字列をセットすると、2個以上の連続した改行がセパレータにな
ります。
藤岡 和夫
FGALTS@...
kazuf@...
TS Networkのために http://homepage1.nifty.com/kazuf/