if field have # subfield delimiter, save splitted field into yaml
[virtual-ldap] / bin / csv2yaml.pl
index 7faa9af..5193e1e 100755 (executable)
@@ -49,8 +49,8 @@ foreach my $line ( split(/\r?\n/, $csv) ) {
                $v =~ s{\s+}{#}g if $n =~ m{tel};
                $v =~ s[\x{17d}][F] if $n =~ m{spol};
 
-               if ( $v =~ m{#} ) {
-                       my @v = split(/\s*#\s*/, $v);
+               if ( $v =~ m{#} ) { # subfields delimiter in CSV data
+                       my @v = split(/\s*#+\s*/, $v);
                        foreach my $pos ( 0 .. $#v ) {
                                if ( $n =~ m{tel} ) {
                                        if ( $v[$pos] =~ m{^09} ) {
@@ -61,8 +61,11 @@ foreach my $line ( split(/\r?\n/, $csv) ) {
                                }
                                $hash->{ $n . '_' . $pos } = $v[$pos];
                        }
+
+                       $hash->{ $n } = [ @v ];
+               } else {
+                       $hash->{ $n } = $v;
                }
-               $hash->{ $n } = $v;
        }
 
        warn dump( $hash ) if $debug;