in reply to Initialization of arrays

I expected 0,4,5,6,7,8,9 to be defined ... but have no value.

That will never happened, because defined means "has a value". (Well, that's assuming "undefined" is not considered a value. defined will obviously return false when the value is undef.)