From 265fa6a6f42909e4e27870a1dd838c4570ba61a8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sven=20Sch=C3=B6ling?= Date: Fri, 17 Jun 2016 14:45:09 +0200 Subject: [PATCH] =?utf8?q?Csv:=20mappings=20=C3=BCbersetzen=20jetzt=20auch?= =?utf8?q?=20header?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- SL/Helper/Csv.pm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/SL/Helper/Csv.pm b/SL/Helper/Csv.pm index 145b7db3c..c58575afe 100644 --- a/SL/Helper/Csv.pm +++ b/SL/Helper/Csv.pm @@ -202,13 +202,13 @@ sub _check_header { my $h_aref = ($self->is_multiplexed)? $header : [ $header ]; my $p_num = 0; foreach my $h (@{ $h_aref }) { - my @names = ( - keys %{ $self->profile->[$p_num]->{profile} || {} }, - keys %{ $self->profile->[$p_num]->{mapping} || {} }, + my %names = ( + (map { $_ => $_ } keys %{ $self->profile->[$p_num]->{profile} || {} }), + (map { $_ => $self->profile->[$p_num]{mapping}{$_} } keys %{ $self->profile->[$p_num]->{mapping} || {} }), ); - for my $name (@names) { + for my $name (keys %names) { for my $i (0..$#$h) { - $h->[$i] = $name if lc $h->[$i] eq lc $name; + $h->[$i] = $names{$name} if lc $h->[$i] eq lc $name; } } $p_num++; @@ -584,6 +584,9 @@ comply with the expected header identities. Without strict profiles, mappings can also directly map header fields that should end up in the same accessor. +With case insensitive headings, mappings will also modify the headers, to fit +the expected profile. + Mappings can be identical to known fields and will be prefered during lookup, but will not replace the field, meaning that: -- 2.20.1