Afaict Perlis is more saying not to expose data layout in the boundaries between abstractions, rather to keep them pure and functional.
So not really a contradiction, just Perlis talking about the functional shell and Torvalds/Pike talking about the imperative core.