my @indexes = qw (3 0 4 5 6 7); open INDATA,"< my.dat" or die "my.dat: $!"; sub read_row { my $row = ; return unless defined($row); return (split(/\s+/,$row))[@indexes]; } sub get_indexes { return @indexes; }