Calocybe: Elegante Lösung für ein Standardproblem gesucht

Beitrag lesen

Hi Marko!

heute mal ein ganz einfaches Standard-Perl Problem

So ein aehnliches Problem hatte ich neulich tatsaechlich. In dieser etwas abgwandelten Form entspricht der Code wohl Deiner Aufgabe:

sub LoadCSV($$$) {
    my ($csvref, $csvname, $separator) = (shift, shift, shift);
    my ($fields, @fields, @row);
    local *CSV;

open(CSV, "<$csvname") return 0;

chomp($fields = <CSV>);
    @fields = split($separator, $fields);

while (<CSV>) {
        chomp;
        push(@$csvref, { });
        @{$csvref->[-1]}{@fields} = split($separator);
    }

close(CSV);
    return 1;
}

@csv = ();
LoadCSV(@csv, "xyz.csv", '') die("Can't read that fuckin' csv file!\n");

print(scalar(@csv), " records read.\n\n");
for (@csv) {
    print("$key=$value\n") while (($key, $value) = each(%{$_}));
    print("\n");
}

Ob das nun elegant ist, muss wohl jeder fuer sich selber entscheiden. Mir gefaellt's jedenfalls. ;-)

Calocybe