Thread primary key Duplikate entfernen ... suche Programmieridee (18 answers)
Opened by tejste at 2014-07-23 12:46

payx
 2014-07-24 13:27
#176586 #176586
User since
2006-05-04
564 Artikel
BenutzerIn

user image
Hallo tejste,

gerade bei diesem Codebeispiel habe ich mich doch eigentlich um Leserlichkeit bemüht. :-/ Wenn etwas unleserlich ist, liegt es übrigens mehr am Programmierer als an Perl, so gesehen ist Perl wie Beton: Es kommt darauf an, was man daraus macht.

Über die Zeile, nach der Du fragst, wurde ja schon diskutiert (s.o.). So SQL zu produzieren (es müssten auch die Quotes noch gesetzt und/oder Werte gecastet werden, wenn z.B. '07/18/2014' in der Ziel-DB als Datumsfeld modelliert ist usw.) und auf die Datenbank loszulassen, ist sicher nicht der richtige Weg.

Ansonsten wird in der Zeile im Wesentlichen ein String zusammengebaut. Mit join(', ', @f) werden die Elemente des Arrays @f mit Komma und Leerzeichen getrennt zu einem String zusammengefügt, siehe Perldoc:perlfunc join. join(';', @f) würde Dir dementsprechend Deine Daten wieder in dem Format zurückliefern, wie sie vorher beim Einlesen waren; vielleicht ist es das, was Du willst, siehe auch Raubtiers Beitrag dazu.

Das Konstrukt mit __DATA__ gebraucht man vorwiegend für Code-Beispiele, damit man nicht mit zwei Dateien hantieren muss. In der Wirklichkeit liest man normalerweise aus Dateien (oder irgendwelchen anderen Datenquellen, aber bleiben wir bei Dateien), siehe hierzu Perldoc:open. Wenn das Ergebnis auch wieder in eine Datei geschrieben werden soll, dann eben nochmals open.

Beispiel:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Datei zum Lesen (<) öffnen
open my $inFH, "<", "quelldatei.txt";
# Andere Datei (die es vielleicht noch nicht gibt) zum Schreiben (>) öffnen
open my $outFH, ">", "zieldatei.txt";

# Die erste Zeile der Quelldatei auslesen (später natürlich nicht nur die erste)
my $firstrow = <$inFH>;

# Diese Zeile in die Zieldatei schreiben.
print $outFH $firstrow;

# Beide Filehandles wieder schließen
close $inFH;
close $outFH;

HTH
Grüße
payx

View full thread primary key Duplikate entfernen ... suche Programmieridee