(ZU DIESEM FORUM) Forums-Auslese, Bereich CGI/Perl
Cheatah
Hi,
ich schlage mich gerade mal durch die Forums-Auslese, da fällt mir doch glatt was auf ;-) Drum dachte ich, ich übe mal Kritik:
http://www.teamone.de/selfhtml/sfausles/tsfa_teb.htm Umgebungsvariablen und SSI:
Mit "exec cgi" dürfte man üblicherweise keine Parameter übergeben können. Besser wäre an der Stelle "include virtual". Außerdem sollte vor dem abschließenden "-->" ein Leerzeichen stehen, weil es sonst (je nach Server) als Teil des Parameters angesehen werden kann.
http://www.teamone.de/selfhtml/sfausles/tsfa_tec.htm Perl: Variablen, Funktionen usw.
"Wie ermittelt man die Anzahl eines Zeichens in einem String" geht weitaus einfacher:
$count = $string =~ tr/X//;
Wobei "X" das/die Zeichen ist/sind.
http://www.teamone.de/selfhtml/sfausles/tsfa_ted.htm Perl: reguläre Ausdrücke
Was soll da mal stehen? ;-)
http://www.teamone.de/selfhtml/sfausles/tsfa_teg.htm Formularauswertung
Hier sollte das Modul CGI.pm genannt werden (ich habe es einige Male getan *g*):
use CGI;
$query = new CGI;
print $query->param("name");
Bei dieser Methode wird praktisch alles beachtet, was zu beachten ist. Die angewählten Felder eines multiple select Feldes stehen sogar in einem Array, also
@multiple = $query->param("name");
http://www.teamone.de/selfhtml/sfausles/tsfa_tej.htm Counter
Die Grafik sollte schon noch mit den Attributen width und height versehen werden ;-) (Zumindest ist es IMHO erwähnenswert). Hier kann aber das Modul GD.pm erwähnt werden, mit dessen Hilfe mehrziffrige Counterimages erstellt werden können. Bei Bedarf schreibe ich mehr dazu.
http://www.teamone.de/selfhtml/sfausles/tsfa_tem.htm Sonstiges zu CGI/Perl
"Programmieren mit Perl-Modulen" taucht zwei mal auf ;-) dafür fehlt IMHO das Perl Kochbuch vom O'Reilly Verlag (Tom Christiansen & Nathan Torkington, Übersetzung von Peter Klicman & Eike Grote; 776 Seiten, 1. Auflage 1999; DM 89,00; ISBN 3-89721-140-8)
So, das war's für's erste :-)
Cheatah
<../../sfausles/tsfa_tec.htm> Perl: Variablen, Funktionen usw.
"Wie ermittelt man die Anzahl eines Zeichens in einem String" geht weitaus einfacher:
$count = $string =~ tr/X//;
Wobei "X" das/die Zeichen ist/sind.
Hallo Cheatah,
hmmm ;-)
$count = $string =~ tr/X//;
...ich hab das jetzt nicht getestet aber musses nicht heissen
$count = $string =~ tr/X/X/; #???
Geschichtliches:
Das ist übrigens ein uralter Trick!
So in etwa:
Tante: "na wieviele üüüs hast Du denn in Deinem Aufsatz stehen?"
Enkel: Macht seinen Aufsatz mit Wööörd auf, geht ins Menu "Suchen/Ersetzen" ... Wööörd meldet: "x üüüs wurden durch üüüs ersetzt" ;-)
Viele Grüße, Rolf
Hi,
$count = $string =~ tr/X//;
...ich hab das jetzt nicht getestet aber musses nicht heissen
$count = $string =~ tr/X/X/; #???
nein, es ist aber auch nicht falsch wenn Du's tust. Läßt man es weg, passiert einfach nix mit dem Zeichen - um es zu löschen, müßte man die Option "d" angeben (tr/X//d).
Geschichtliches:
Das ist übrigens ein uralter Trick!
Na logisch :-)
So in etwa:
Tante: "na wieviele üüüs hast Du denn in Deinem Aufsatz stehen?"
Enkel: Macht seinen Aufsatz mit Wööörd auf, geht ins Menu "Suchen/Ersetzen" ... Wööörd meldet: "x üüüs wurden durch üüüs ersetzt" ;-)
Dabei muß man aber aufpassen, daß man nicht zufällig auch "ÜÜÜ" durch "üüü" ersetzt ;-)
Cheatah
Hallo Cheatah,
...ich hab das jetzt nicht getestet aber musses nicht heissen
$count = $string =~ tr/X/X/; #???
nein, es ist aber auch nicht falsch wenn Du's tust. Läßt man es weg, passiert einfach nix mit dem Zeichen - um es zu löschen, müßte man die Option "d" angeben (tr/X//d).
Vielen Dank für Dein Feedback! Es ist schon eine Crux mit diesen RegExp - div. Foren sind voll von Fragen zu_ ;-)
Geschichtliches:
Das ist übrigens ein uralter Trick!Na logisch :-)
So in etwa:
Tante: "na wieviele üüüs hast Du denn in Deinem Aufsatz stehen?"
Enkel: Macht seinen Aufsatz mit Wööörd auf, geht ins Menu "Suchen/Ersetzen" ... Wööörd meldet: "x üüüs wurden durch üüüs ersetzt" ;-)Dabei muß man aber aufpassen, daß man nicht zufällig auch "ÜÜÜ" durch "üüü" ersetzt ;-)
Stimmt! Im vorliegendem Fall könnte entweder die Tante oder der Enkel (Neffe) einer Herzattacke erliegen, je nachdem.
Viele Grüße aus EF, Rolf
Hi,
einen kurzen Einwand noch:
$count = $string =~ tr/X/X/; #???
nein, es ist aber auch nicht falsch wenn Du's tust. Läßt man es weg, passiert einfach nix mit dem Zeichen - um es zu löschen, müßte man die Option "d" angeben (tr/X//d).
Vielen Dank für Dein Feedback! Es ist schon eine Crux mit diesen RegExp - div. Foren sind voll von Fragen zu_ ;-)
Stimmt schon, nur hat das hier mit RegExp nichts zu tun ;-) Hier wird nur zeichenweise ersetzt. Bei
s/xyz/abc/
ist die RegExp nur das "xyz". Die Regeln, die dort gelten, haben bei tr/// jedoch keinerlei Gültigkeit. tr/// ist allenfalls vergleichbar mit den Zeichenklassen der RegExp, aber auch das nur bedingt.
Ich wollt's nur gesagt haben :-)
Cheatah
hi!
ich schlage mich gerade mal durch die Forums-Auslese, da fällt mir doch glatt was auf ;-)
Drum dachte ich, ich übe mal Kritik:
Danke für deine Anmerkungen. Das allermeiste, was in der Auslese steht, ist einfach nur aus Nachrichten aus dem Forum entstanden. Wenn ein Problem besser zu lösen geht, die Lösung aber nicht im Forum auftaucht, wird sie also auch nicht in die Auslese aufgenommen. Es ist ja schließlich nicht das Ziel, archivierte Probleme jetzt nachträglich bestmöglich zu lösen.
Da du jetzt aber etwas dazu geschrieben hast, und ich diese Nachricht vermutlich irgendwann auch überfliege, wenn ich die CGI/Perl-Auslese wieder mal überarbeite, kommen evtl. einige deiner Anmerkungen mit rein.
bye, Frank!
Hi Frank,
Danke für deine Anmerkungen. Das allermeiste, was in der Auslese steht, ist einfach nur aus Nachrichten aus dem Forum entstanden. Wenn ein Problem besser zu lösen geht, die Lösung aber nicht im Forum auftaucht, wird sie also auch nicht in die Auslese aufgenommen.
jepp, das ist mir klar - drum schreibe ich es ja jetzt ;-)
Es ist ja schließlich nicht das Ziel, archivierte Probleme jetzt nachträglich bestmöglich zu lösen.
Nein, aber schaden kann es doch auch nicht, oder?
Da du jetzt aber etwas dazu geschrieben hast, und ich diese Nachricht vermutlich irgendwann auch überfliege, wenn ich die CGI/Perl-Auslese wieder mal überarbeite, kommen evtl. einige deiner Anmerkungen mit rein.
So war's geplant :-)
Nebenbei denke ich aber auch, daß man ein wenig die Forumsauslese "steuern" kann, indem man bestimmte Lösungen forciert. Das muß nicht mal über ein Hintertürchen geschehen, sondern frag einfach z.B., wie man mit einer RegExp eine eMail-Adresse herausfindet (oder welches Problem auch immer in der Auslese behandelt werden sollte).
Naja, irgendwie so halt :-)
Cheatah