@a = (1)[1,0]; # @a has two elements # OK, this one is fine # but what about these: @b = (1,undef)[1,0,2]; # @b has three elements # where does that third element come from? # or we could rewrite the above B case like this # and still get three elements: @b = (1)[1,0,2]; # why three and not *TWO*? @a = (1)[ 1,2]; # @a has no elements # !?