--- Object#marshal_dump         ruby 1.8 feature
--- Object#marshal_load         ruby 1.8 feature

    

    Marshal.dump ˤơϤ륪֥Ȥ᥽å 
    `marshal_dump' Ƥˤϡͤ dump ޤ
    ᥽å marshal_dump ǤդΥ֥Ȥ֤᥽åɤȤ
    ޤ

    Τ褦ʥ֥Ȥ load ˤϥ᥽å `marshal_load' 
    ƤʤƤϤʤ餺load Ѥޤ
    marshal_load  marshal_dump ͤΥԡ˼
    ޤmarshal_load  self ϡ줿Ф
    (allocate 줿Ф)ξ֤Ǥ
    ʤmarshal_load ̵ͤ뤵ޤ

    dump 륪֥Ȥ _dump  marshal_dump ξΥ᥽åɤ
    ľ marshal_dump Ѥޤ

        class Foo
          def initialize
            p "initialize() called"
            @foo = ['foo', 'bar']
          end
          def marshal_dump
            @foo
          end
          def marshal_load(obj)
            @foo = obj
          end
        end

        p Marshal.load(Marshal.dump(Foo.new))

        "initialize() called"
        #<Foo:0x4019ed2c @foo=["foo", "bar"]>

    󥹥ѿξ̥ޡǡ˴ޤޤΤǡ
    Τ褦 marshal_dump ɬפϤޤ( 
    marsahl_dump ȥ󥹥ѿξ dump ʤ
    ޤΤǡmarshal_dump/marshal_load ǰɬפޤ)
    marshal_dump/marshal_load Ϥ٤Ԥ
    ĥ饤֥饹Υ󥹥󥹤󥹥ѿʳ
    ˾ݻѤޤ

    äˡmarshal_dump/marshal_load ֥Ȥðۥ᥽åɤ
    ƤƤޡǤ褦ˤʤޤ
    (ðۥ᥽åɤξ󤬼ưŪ dump 褦ˤʤ櫓ǤϤʤ
    marshal_dump/marshal_load ˤꤽ¸;ϤȤ
    Ǥ)

