open (FH, "< sample_1_header.csv") or die "Can't open file for read: $!"; my @header=; my $i=0; foreach(@header) { my @array=$header[$i]; print @array; my @wanted_fields = @array; open(DATA, "sample_1.csv") or die "Could not open file $!"; my @fields = split /,/, ; chomp @fields; #print Dumper \@fields; while () { chomp; my %row; @row{@fields} = split /,/; my @wanted_data = map {$row{$_}} @wanted_fields; print join(",", @wanted_data), "\n"; } $i++; }