考查情态动词辨析。A选项did not need to do “(过去)没必要/不需要做这事”,B选项needn't have done,need情态动词就完成时表示“本来无必要做这事(却做了)”,C选项must not have done“禁止这样做”;must not表示禁止,语气强硬,一般情况下后面不跟动词的完成时态,D选项couldn’t have done“不能做这事(但做了),”句意:他自己把包裹带回家,但他_______,商店可以把包裹寄给他。句子表达的意思是商店可以把包裹寄给他,所以他过去没必要自己搬回包裹,表示过去没必要做,但是做了的事情,所以本题的正确答案是B选项。