extraer múltiples columnas del archivo txt perl

Tengo un archivo txt como este:

#Genera columnA columnB columnC columnD columnN
x1       1       3       7      0.9      2
x2       5       3       13     7        5
x3       0.1     0.8     7      1        0.4

y quiero extraer X determinado número de columnas, solo supongamos que queremos la columna A, la columna C y la columna N (esto podría ser una matriz con 1, 2, 20, 100 o más columnas) y lo que quiero imprimir (este ejemplo es solo 3 pero podría ser más):

#Genera columnA columnC columnN
    x1   1       7       2
    x2   5       13      5
    x3   0.1     7       0.4

Yo he tratado

#!/usr/bin/perl
use strict;
use warnings;


my @wanted_fields = qw/columnA columnC columnN/;

open DATA, '<', "columns.txt" or die "cant open file\n";


my @datain = <DATA>;
close DATA;

my (@unit_name, $names, @lines, @conteo, @match_names, @columnas);

foreach (@datain){
    if ($_=~ m/^$/g)            {   next;           }
    elsif ($_=~ m/#Genera/g)    {   $names= $_;     }
    else                        {   push @lines, $_ }
}


@unit_name = split (/\t/, $names);
shift @unit_name;
my $count =0;

    foreach (@wanted_fields){
        my $unit_wanted =$_;
        chomp $unit_wanted;
        foreach (@unit_name){
            if ($_ =~ m/$unit_wanted/g){
                $count++;
                 push (@conteo, $count);
                 push (@match_names, $_);
                }
        }
    }


    foreach (@lines){
        chomp;
        @columnas = split (/\t/, $_);
            #push @xx, $columnas[0][3];

    }

Utilicé el conteo para determinar la columna a extraer, pero en este caso el número 2 no corresponde a la columna C y el 3 no corresponde a la columna N bien ... es una forma simple de seleccionar cualquier columna dada, en este caso solo quiero 3 pero dependiendo del caso podría ser 1,2 5, 10, 100 o más columnas.

Gracias