好苦的ruby

因为看Short Coding写出简捷好程式-短码达人的心得技法的p.265这个ruby的执行,由于课本没有多的解释,所以看不太懂这个指令的正确与否?
烦请协助,谢谢!
档案:
hex.dat内含
0x55
0x89
0xe5
0x8b
0x4d
0x08
0x8b
0x45
0x0c
0x8b
0x10
0x8b
0x01
0x29
0xd0
0x5d
0xc3

我在windows命令列下这样的命令:
ruby -e ‘print open(“hex.dat”).read.map{|s|s.hex.chr}.join’ > bin.dat
结果产生这样的错误:
-e:1: syntax error, unexpected $end
‘s’ 不是内部或外部命令、
可执行的程式或批次档。

看来是语法有错误,可是现在的我并无能力知道错误在哪?况且这本课本有时候也有写错的地方,我现在的想法是这个s附近的|符号,不知道课本有没写错!不然怎会产生’s’ 不是内部或外部命令的错误!
所以有哪位大德知道问题的话,还请教导小弟,谢谢!==>这是我在http://www.javaworld.com.tw/jute/post/view?bid=58&id=245809&tpg=1&ppg=1&sty=1#246080

留的言!

感谢koji帮我确认这个程式码没错!

可是我真的很疑惑,为何会错误,所以今天又找了Google一会儿,看了一会儿ruby的电子书,终于在又是Ruby一行文… 画出一张图看出端倪,CFC是用双引好刮起来ㄝ!但是Ozy这个日本人怎用单引号啊!所以我就改用双引号来试试看:

ruby -e “print open(‘hex.dat’).read.map{|s|s.hex.chr}.join” > bin.dat

ya!ya!看来ruby的双引号及单引号机制跟PHP的类似,唉!Ozy害得我好苦喔!