When you know what and how to build commit to good data structures. Do the types, structs, classes, Trie, CRDTs, XML, Protobuf, Parquet and whatnot where apropriate. Instrument your program. The efficiency of the final product counts.
So not really a contradiction, just Perlis talking about the functional shell and Torvalds/Pike talking about the imperative core.
Good structure comes from exploring until you understand the problem well AND THEN letting data structure dominate.