Hallo Alex,
Erst mal danke für deine lange Antwort!
Ich hab` schon mal reingeschaut, aber konnte nicht gleich was
entdecken. Und nebenbei betreibe ich, wie vielleicht auch andere,
noch eine Hauptbeschäftigung sowie weitere Nebenbeschäftigungen
(Hier verkehren also nicht nur Studenten, Hausfrauen, Arbeitslose
und Rentner ;-)
Sollte ja um Himmels willen kein Vorfurf gewesen sein! Ich dachte ja
es läge an mir ;-)
Aber imho gibt es schon noch ein paar Anmerkungen *g* (Imho ist
meine Programmierstil auch nicht sonderlich gut, aber man lernt
ja nie aus.
Genau das will ich ja auch damit bezwecken! Wenn ihr schon mal dabei
seid, einen Fehler in meinem Script zu suchen, dann habt ihr
sicherlich vorher schon 100 Sachen gefunden, die euch am Nerv gehen,
weil zu umständlich programmiert. Und ich freu mich, wenn ihr mir
sagt, was ich besser machen müsste. Denn ich arbeite alleine, und
hab somit kein Team, wo ich mir von den Besseren was abschauen
könnte ;-( Das Forum hier und ein paar Bücher sind also meine
einzigen Quellen! Und sooooo lange bin ich ja auch noch nicht in
diesem business -Vor zwei Jahren wusste ich noch nicht mal, wie ich
eine email verschicken kann ;-)
Ich will jetzt nicht den Perl-Lehrer spielen, das können andere
besser, aber ich möchte einige Sachen anmerken, die _ich_ mir im
Laufe der Zeit angewöhnt habe (und vielleicht auch einige andere):
Als erstes deklariere alle Variablen mit my(), local() oder use
vars(). Dabei hilft "use strict;" Andernfalls machst Du alle
Variablen der Subroutinen global, was Dir früher oder später
Scherereien verursachen kann (außerdem gibts afaik Ärger mit
mod_perl ;-).
Scherereien hats bereits genug gegeben :-( Ich habe vorher alles in
eine‚m script gehabt (Termine anzeigen, Detailprogramm anzeigen,
Kursübersicht anzeigen, Anmeldeformular anzeigen, und
Anmeldeformular verarbeiten) Wie du dir vorstellen kannst, das reine
Chaos :-(
Imho ist es auch ungünstig, innerhalb einer Subroutine einen Wert
in eine globale Variable schreiben zu lassen. "$wert = &getWert
();" ist imho aussagekräftiger für jemanden, der Deinen Code
lesen muss ;-)
Ich komme ja eigentlich mit ein bissi c/c++ background in die Web-
Programmierung. Da muss man sowieso jede Variable vorher
deklarieren. Aber dadurch dass es bei den Scriptsprachen so einfach
geht, auch dank dem Konzept der globalen Variablen, zwingt einen
keiner dazu objektorientiert (var Wert; getWert(); setWert();..) zu
arbeiten, bzw. sich zu überlegen, welche Variablen man braucht.
Daher auch mein zwiespältiges Verhältnis zu Javascript, Perl, und
Co. Man kann verdammt viel damit machen, aber wenn man sich nicht
auskennt, kostet es einem viele graue Haare ;-(
Optimierungspotential liegt, wie wir in einem Posting von ?
weisnichtmehr? gelesen haben, in jedem Code. Ich persönlich
verwende "" nur dann, wenn der String nach Variablen geparst
werden soll, oder Steuerzeichen enthält. Ansonsten ziehe ich ''
vor,
Du meinst bei print '' statt "" ?
my @tags = ('br','p','b','u','i');
my $regex = join('',@tags);
foreach (@_) {
s![\s*(/)\s*($regex)\s*]!<$1$2>!oig;
Bevor ich diese Hieroglyphen in mein Script einbaue muss mir jemand sagen was das heissen soll. Vor allem: Wieso sind da Rufzeichen ! statt den Slashes / ??????
[ ....... ist klar was das macht!
s* ....... alle \r\t\n\b rausschmeissen
(/) .‚... falls </EndTag> (sollte es dann nicht / heissen? ein
slash muss doch maskiert werden oder)
] ....... ist auch klar!
<$1$2> ... was ist in dem Fall $1 (\s* oder /) und was ist $2
($regex oder eins der \s*)?
!????? ... und was sind diese Rufzeichen ????
Conclusio: Ich nehme mal an, diese RegExpr. wandelt alle [tags] in
<tags> um! Wäre die umgekehrte Version dann:
s!<\s*(/)\s*($regex)\s*>![$1$2]!oig;
????
Vielleicht fällt jemand Anderem noch etwas zum Thema ein.
Ansonsten, wie sollte es bei Perl auch anders sein, gibt es zu
allem eine Doku: perldoc perlstyle ;-) (Aber jeder findet
irgendwie seinen Stil)
Ich werde meinen wohl nie finden :-(
Dann wieder viel Spaß mit Perl :-)
Scherzkeks ;-)
liebe grüsse,
bernhard