可以说,这是一个错句,因为作为名词,need的後面一般不用完成式动词(to have done),通常同to do.根据上下文,the bagpack已经买下了,也就是说,buy的动作已经完成了,好像应该用no need to have bought(这是buy了以後说的),但英语中没有这种结构,只用no need to buy.no need to buy往往是buy以前说的.所以是错句.
如果是:- - - - but you needn't have bought a new one for me就对了.
出题人,纠结啊.学生啊,是受害人.