Using references does not change the array in any way. The problem must lie somewhere else - try to print, or better Data::Dumper, the array at various points in the program. BTW, instead of \@$col, you can use just $col.
Comment on Re^3: Passing two arrays to a subroutine