> I'll get a crash

Crash as in fatal error dump crash?

> is that because it -creates- the key-value pair when I look at it ?

It's possible to define a hash that way:

a = Hash.new {|h,k| h[k] = nil}
a[:x]
=> nil
a
=> {:x => nil}

You could check with

p entry.default_proc

or

p entry.has_key?(:foo)
p entry[:foo]
p entry.has_key?(:foo)