I haven't looked at the source for B::Deparse, but I'm guessing it must add the whitespace on its own. Just remove those spots and you've got most of the rest.
I hear an old statement about adding functionality by removing something.
Reinvent a rounder wheel.
Note: All code is untested, unless otherwise stated