えぐち@エスアンドイー です。 >>> On Wed, 28 Oct 1998 19:03:10 +0900, flare / kcn.or.jp (Takashi Ikeda) said: flare> ふれあです。 flare> flare> 暇潰し^H^H^H勉強で Perl で書いたものを Ruby に移しているので flare> すが、split の挙動が Perl とは違うのですね。 たしかに違う部分はありますね。 でも、違う部分の認識がちょっと違うような、、、 flare> rbc0> '1:2:'.split ':' flare> ["1", "2"] これは perl と *同じ* です。 flare> rbc0> ':'.split ':' flare> [""] これは perl と違う perl で scalar(split(':', ":")) は 0 より顕著な例を挙げると。 % perl -e 'print scalar(split(":", "::::::::::")) . "\n"' 0 % ruby -e "p '::::::::::'.split(':').size" 10 flare> 具体的には、'1:2:' で ["1", "2", ""] が出てくれたら有難いの flare> ですが、何か事情があるのでしょうか? perl も ("1", "2") を返しているようです。 私が見た限り perl[45] 両方とも同じでした。 '1:2:'.split(':') が ["1", "2", ""] となって欲しい理由というと、、 % ruby -e 'p "a:b:c:".split(":").join(":")' "a:b:c" ==> "a:b:c:" 的な対称性ですか? それとも awk との互換性が問題ですか? 個人的には、前者の対称性の意味で、ふれあ さんのおっしゃるように、 '1:2:'.split(':') が ["1", "2", ""] を返すとシックリ来るのですが、 、、、もはや ここも いいぢると大変な事になるでしょう。 えぐち