ふれあです。

In message "[ruby-list:10423] Re: split"
    on 98/10/28, EGUCHI Osamu <eguchi / shizuokanet.ne.jp> writes:
> 
> えぐち@エスアンドイー です。
> 
> >>> On Wed, 28 Oct 1998 19:03:10 +0900, flare / kcn.or.jp (Takashi Ikeda) said:
> 
> flare> ふれあです。

> たしかに違う部分はありますね。
> でも、違う部分の認識がちょっと違うような、、、
> 
> flare> rbc0> '1:2:'.split ':'
> flare> ["1", "2"]
>  これは perl と *同じ* です。

そうですね、すいません。Perlが勝手に配列をあるかのように見せ
ていたせいでした。Rubyのほうがよりstrictなので、問題があぶり
出された次第です。
# 情けない(^^;)。ちゃんと勉強します

> flare> 具体的には、'1:2:' で ["1", "2", ""] が出てくれたら有難いの
> flare> ですが、何か事情があるのでしょうか?

単に、Perlからの移植がスムースに行けばいいと言うそれだけのこ
とです。あまり対称性とか互換性などは考えていませんでした。

> 個人的には、前者の対称性の意味で、ふれあ さんのおっしゃるように、
> '1:2:'.split(':') が ["1", "2", ""] を返すとシックリ来るのですが、
> 、、、もはや ここも いいぢると大変な事になるでしょう。

そうですね。もう出来上がったものを直すのは他のスクリプトに対
してはひどい仕打でしょう。

In message "[ruby-list:10426] Re: split"
    on 98/10/28, Wakou Aoyama <wakou / fsinet.or.jp> writes:
> 
> limit の挙動を Perl に合わせるというのはどうでしょうか?
> 
> $ ruby -e 'p "1:2:".split(/:/, 3)'
> ["1", "2", ""]

あまり、いじくりたくなかったので、そこまでは考えていませんで
した。

結局、1行をsplitする前にchop!せずに呼び出し、3つ目の文字列
を取り出した後にそれをchop!するということで落ち着いてます。
# 大体、文字列の最後に':'を引っ付けてからsplitすれば、問題は
# 解決できていたのですが…(しかしもう布団の中だった)。まあ、
# 解決法なんて幾らでもあるでしょうし…。

いろいろと勉強になることをお教え頂き、有難うございました。

-- 
( takashi-ikeda . flare / kcn.or.jp )