The input data is stored in a array of hash hash slice with each element in the @cols as keys.
The reference to the hash table is then stored in @data.
http://www.manning.com/cross/
free download Chapter 2 has a figure explaining just this!
HTH
Update: @table{@cols} = split /\t/; is a hash slice as others have mentioned!