#!/usr/bin/perl -w use strict; my $data_qn = 'data_file'; open($data_fh, '<', $data_qn) or die("Unable to open plot data \"$data_qn\": $!\n"); my @data; while (<$data_fh>) { my @fields = split ' '; for my $row (0..$#fields) { push @{$data[$row]}, $fields[$row]; } } use Data::Dumper; print Dumper \@data;