作者: 藤岡和夫
日時: 2004/1/12(12:21)
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/