use strict; use warnings; use Data::Dumper; my @array = (); while (my $line = <$ifh>) { push(@array, [ (split(/\t/, $line))[0,3,7] ]); } print Dumper(\@array);