#!/usr/bin/perl # sollte in keinem Script fehlen use strict; use warnings; use DBI; use Data::Dumper; # Verzeichnis mit dem Script finden. # "." muss nicht immer das Verzeichnis mit dem Script sein use FindBin '$Bin'; # Sollte man machen. # es hilft die Dateinamen # von den Tabellennamen zu trennen. my %zuordnung=( prospects => { file => 'prospects.csv', col_names => ['Name', 'Address', 'Floors', 'Donated last year', 'Contact'], }, ); # Verbindung aufbauen my $dbh = DBI->connect("DBI:CSV:", undef, undef, { # Zeilenseparator csv_eol => "\x0A", # Spaltenseparator: csv_sep_char => ",", # Verzeichnis mit den Dateien f_dir => $Bin, # Zuordnung Dateiname -> Tabelle csv_tables => \%zuordnung, # bei Fehlern immer sterben: RaiseError => 1, } ) or die($DBI::errstr); # Testausgabe Nr.1: ganze CSV my $sth=$dbh->prepare('SELECT * FROM prospects'); $sth->execute(); while(my @row = $sth->fetchrow_array){ print join('; ',@row)."\n"; } $sth->finish; #Textausgabe Nr.2: sortierte CSV $sth = $dbh->prepare("SELECT * FROM prospects WHERE Name LIKE 'G%'"); $sth->execute(); print Dumper (my $row = $sth->fetchrow_hashref); while (my $row = $sth->fetchrow_hashref){ print qq(Name = $row->{name} Contact = $row->{contact})."\n"; } $sth->finish(); $dbh->disconnect();