まつもと ゆきひろです.

In message "[ruby-list:2217] Re: [BUG] pack/unpack [Re: [Req] pack/unpack]"
    on 97/02/19, Keiju ISHITSUKA <keiju / shljapan.co.jp> writes:
|けいじゅ@SHLジャパンです. 
|
|In [ruby-list :02215 ] the message: "[ruby-list:2215] Re: [BUG] pack/unpack [Re: [Req] pack/unpack] ", on Feb/19 17:56(JST) 
|matz / caelum.co.jp (Yukihiro Matsumoto)  writes: 
|
|>| p ["ab", "cd", "ef"].pack("a4a4X8a4").unpack("a4a4X8a4")
|>
|>どうしてそう思ったのか明らかではないのですが,こればっかりは
|>私にはどうしようもありません.ごめんなさい.
|
|結果が問題でなくて, エラーになるのが気になったんですけどね. まあ, perl
|も同じエラーですが...

  p ["ab", "cd", "ef"].pack("a4a4X8a4")

の結果が

  "ef\000\000"

である以上,unpack("a4a4X8a4")はエラーにならざるを得ません.
もしかするとそういう意味でも対称性のあるXの挙動というのは存
在できるかも知れませんが,perlとの互換性を失うのはまずいので
手も足も出ません.