I need to read a file into arrays directly so that each column is a seperate array..., where in each column is seperated in the original file by some delimeter (in shell $ cut -d : -f 1 foo ). One way is to loop over the file, and use split. But this is time consuming (for a large file). Is there a smarter way of doing the same? Sorry if this is a silly question, but I didn't find solution either in 'Learning Perl' or thorugh google.