#!/usr/bin/perl use 5.010; use warnings; use strict; use Text::CSV; my $file_in = 'addressbook.csv'; my $file_out = 'Test'; my $csv = Text::CSV->new( { binary => 1 } ) or die "Cannot use CSV: ".Text::CSV->error_diag(); open my $fh_in, '<:encoding(utf8)', $file_in or die $!; open my $fh_out, '>:encoding(utf8)', $file_out or die $!; my @felder = ( 'Nachname', 'Vorname', 'Mobiltelefon', 'Telefon (privat)', 'E-Mail-Adresse', 'Homepage', 'Jahrestag' ); $csv->print( $fh_out, \@felder ); say $fh_out ''; $csv->column_names( $csv->getline( $fh_in ) ); while ( my $hr = $csv->getline_hr( $fh_in ) ) { my @row = @{$hr}{@felder}; $csv->print( $fh_out, \@row ); say $fh_out ''; }