Cheatah: Stringabfrage mit unless oder if

Beitrag lesen

Hi,

Ich habe eine Art kleine Datenbank konzipiert,

Pawlow hat mich erwischt: Datei != Datenbank.

Nur wollte ich jetzt die Datenauflistung formatieren und das gelingt mir einfach nicht.

Hm. Woran liegt das Deiner Meinung nach?

$fname = $FORM{'name'};

Ich vermute, Du möchtest ganz, ganz, ganz dringend

perldoc CGI

lesen.

open(IN,'<daten.csv') or die 'Daten können nicht geoeffnet werden: '.$!;

Schön!

my($eingangszeile);

Listenkontext (Klammern) ist hier zwar nicht falsch, aber auch nicht nötig. Erst wenn Du mehrere Variablen in einer 'my'-Anweisung deklarierst, brauchst Du ihn.

while($eingangszeile = <IN>)

Du kannst übrigens auch schreiben:
while (my $eingangszeile = <IN>) {

Beachte übrigens, dass ich perldoc perlstyle-konform hinter while ein Leerzeichen gelassen und die geschweiften Klammern in der selben Zeile begonnen habe :-)

my($name,$vorname,$strasse,$ort,$plz,$url,$email,$telefon,$sperre,$id) = split(/;/,$eingangszeile,10);

Hast Du Dich darum gekümmert, dass keine ";" innerhalb der einzelnen Felder vorkommen können? Falls ja, hast Du offenbar die Dekodierung vergessen; falls nicht, hast Du ein Problem.

Die Datenfelder sind durch Semikola getrennt und ein leeres Feld ist ohne ein Leerzeichen (also z.B. http://www.homepage.de;;) formatiert.

Ja - das nennt sich CSV ;-) Vielleicht ist der Tabulator als Trennzeichen geeigneter; bedenke aber, dass man selbst in Browser-Eingabefeldern dieses Zeichen unterbringen kann.

Ich hoffe, Ihr versteht, wie ich es meine.

Ich nehme an Du möchtest wissen, wie Du auf die Existenz einer Mailadresse prüfst. Dazu findest Du in

perldoc perldata

einen Absatz, der beschreibt, wann ein Skalar als TRUE gilt (und genau das kannst Du ja mit if abprüfen).

Cheatah