Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

[PERL] Falscher Wert wird ausgegeben

CGWS / 4 Antworten / Flachansicht Nickles

Hallo zusammen,
ich versuche gerade eine CSV Datei zu parsen, die aus 29 Spalten besteht. Leider wird immer der Wert der ersten Zeile ausgegeben und nicht der Wert von jeder einzelnen Zeile an der Stelle.

Hier der Code:

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

use Text::CSV;
my $csv = Text::CSV->new({ sep_char => ';' });
my $file = "AB.csv";
my $new_file = "AB.ldif";
my @fields;

open (my $fh, '>:encoding(utf8)', $new_file) or die;

    open(my $data, '<:encoding(utf8)', $file) or die "Could not open '$file' $!\n";
    while (my $line = <$data>) {
        chomp $line;

        if ($csv->parse($line)) {
            #Push elements into array
            push(@fields, $csv->fields());
        } else {
        warn "Line could not be parsed: $line\n";
        }

        my $column0 = $fields[0];
            my $column1 = $fields[1];
            my $column2 = $fields[2];
            my $column3 = $fields[3];
            my $column4 = $fields[4];
            my $column5 = $fields[5];
            my $column6 = $fields[6];
            my $column7 = $fields[7];
            my $column8 = $fields[8];
            my $column9 = $fields[9];
            my $column10 = $fields[10];
            my $column11 = $fields[11];
            my $column12 = $fields[12];
            my $column13 = $fields[13];
            my $column14 = $fields[14];
            my $column15 = $fields[15];
            my $column16 = $fields[16];
            my $column17 = $fields[17];
            my $column18 = $fields[18];
            my $column19 = $fields[19];
            my $column20 = $fields[20];
            my $column21 = $fields[21];
            my $column22 = $fields[22];
            my $column23 = $fields[23];
            my $column24 = $fields[24];
            my $column25 = $fields[25];
            my $column26 = $fields[26];
            my $column27 = $fields[27];
            my $column28 = $fields[28];

            print $column6;
    }

close $fh;

Kann mir jemand helfen? Über eine kurze Rückmeldung wäre ich sehr dankbar.

Gruß
CGWS

bei Antwort benachrichtigen
CGWS Acader „Ehrlich gesagt nicht so richtig. MfG Acader“
Optionen

Hallo Acader,

schade. Ich versuche gerade mit diesem Skript einen Parser zu schreiben, der ein Adressbuch von Windows Live Mail (CSV) in ein CSV kompatibles Format für Thunderbird umwandelt, oder als LDIF ausgibt.

Ich habe bis jetzt noch nicht den Fehler gefunden. Im Kopf ist mir meine Vorgehensweise schon klar, habe nur Probleme sie auf Papier zu bekommen.

Gruß
CGWS

bei Antwort benachrichtigen