Perl-Scripts unleserlich???
R.Schulze
- meinung
0 R.Schulze0 TOM-M0 Connie0 Thomas Kallwass0 Calocybe0 klaus
0 n.d. parker0 Michael Schröpl
Hallo,
Ich hab nicht so besonders viel Wissen in Umgang mit Perl.
Wohl aber in anderen Programmiersprachen wie C/C++, Pascal oder JavaScript.
Doch frage ich mich beim Anblick einiger Perl-Scripts, ob die jeweiligen Programmierer entweder zu wenig Erfahrung oder ein besonders abstaktes Gehirn haben.
Dazu folgender Codeschnipsel (Perl):
######################################################################################
#!/usr/local/bin/perl
use CGI qw/:standard/;
$CGI::POST_MAX=1024 * 25; # max 25K posts
$file_name = param('file_name');
$file_type = param('file_type');
&Print_Error if($file_name eq "");
&Print_Results;
sub Print_Results{
if($file_type eq "text"){
print header();
print start_html('File Upload Test');
print "<PRE><B>File Name:</B> $file_name\n";
print "<B>File Contents:</B>\n";
while(<$file_name>){ print $_; }
print "</PRE>";
print end_html;
} else {
print header('image/gif');
while(read($file_name,$data,1024)){ print $data; }
} # End of if..else
} # End of subroutine.
#######################################################################################
^ Und hier fängt es an.
Es ist doch schade, wenn man zu bloed ist den Code richtig auszurichten, das jeweilige Codeblockende
zu kommentieren, was da nun grade aufhört.
Oder???
So sieht es doch viel besser und übersichtlicher aus:
#################################################################
#!/usr/local/bin/perl
use CGI qw/:standard/;
$CGI::POST_MAX=1024 * 25; # max 25K posts
$file_name = param('file_name');
$file_type = param('file_type');
&Print_Error if($file_name eq "");
&Print_Results;
sub Print_Results
{
if($file_type eq "text")
{
...
while(<$file_name>)
{
print $_;
}
...
}
else
{
print header('image/gif');
while(read($file_name,$data,1024))
{
print $data;
}
}
}
###########################################################
Dazu würde ich mal gern ein paar Sachen hören!!!
Sorry aber die Formatierung ist in meinem Beispiel nicht so geworden wie ich es eingetragen hatte.
Aber wers kennt weiß was ich meine
Hallo.
Ich denk das hat nichts mit Perl zu tun, sondern ist Sache des
Programmierers.
Einzig gibt es bei c++ viele Entwickler welche mit einem
riesen Editor ihren Code schreiben, welche automatsich nach
einer Klammer einen Absatz erzeugen.
Wohingegen vieler Perl-Hacker noch vor einem vi(beste Editor der Welt)
sitzen.
Gruß
tom
Ich denk das hat nichts mit Perl zu tun, sondern ist Sache des
Programmierers.
Natürlich hat es nichts mit Perl zu tun.
Früher habe ich auch nicht eingerückt.
Und natürlich ist es auch Geschmackssache.
Aber IMHO sollte Quellcode sauber sein, schon alleine der Wartung wegen
Hi!
natürlich ist das schwer zu lesen, wenn dann noch viele RegEx's dazukommen.. aber:
vielleicht ist das so sparsam formatiert, um den Code schlank zu halten, CR-LF (carriage return - line feed) sind auch Zeichen, die eine Datei aufblähen...
und es soll doch alles schneller werden, od'r?
ich denke, wenn es funzt, ist es gut..
Gruss
Connie
und es soll doch alles schneller werden, od'r?
Dazu gibts Xeon, Ultra SPARC, Alpha, Itanium und Co. sowie schnellste Speichersysteme.
MfG
Thomas
Hallo Connie!
natürlich ist das schwer zu lesen, wenn dann noch viele RegEx's dazukommen.. aber:
vielleicht ist das so sparsam formatiert, um den Code schlank zu halten, CR-LF (carriage return - line feed) sind auch Zeichen, die eine Datei aufblähen...
Ja, neulich musste ich mir doch tatsaechlich ne neue Platte zulegen, weil ich meine anderen 20 Gigs schon mit CRLFs zugeballert hab...
und es soll doch alles schneller werden, od'r?
Tja, ich kann's einfach nicht lassen mit den Einrueckungen, deshalb wohl geht mein Rechner immer voll in die Knie, wenn ich ein kleines Script zum Umbenennen von Dateien starte. Ja, das wird's sein.
So long
Halli Hallo,
vielleicht ist das so sparsam formatiert, um den Code schlank zu halten, CR-LF (carriage return - line feed) sind auch Zeichen, die eine Datei aufblähen...
Hast Du Dir schomn mal einige Module angesehen, wie die geschrieben wurden???
z.T. stehen sogar die Dokumentationen drinnen, ist auch o.k. oder?
und es soll doch alles schneller werden, od'r?
Versuchs mit mod_perl!
ich denke, wenn es funzt, ist es gut..
und wenn es nicht funzt, dann weiß ich wenigstens, daß ich gleich gar nicht suchen brauche, weil ich sowieso nichts finde.
Also ich bin mir sicher, daß eine gute Optik immer besser ist als eine Zeichenwurst.
Ich mag andererseits auch nicht solche Editoren, welche der Meinung sind, zu wissen wie ich meine Code
formatieren soll. (EMACS ist die Pest) Oje, jetzt wird wohl eine Menge Proteste hageln.
Ich mag auch nicht den Pseudostandard mit der Klammer in der ersten Zeile
foreach $line (@lines){
...
}
ist mir noch immer zu unübersichtlich.
Wichtig ist meiner Meinung auch, daß Variablen auch wirklich beschreiben, welche Aufgabe sie erfüllen.
Auch kann man Code trotz Einrückungen so fpormulieren, daß kein Mensch mehr draufkommt, was da eigentlich passiert
sicher ich mach auch oft Sachen wie
print chomp while <IN>;
aber ich denk mir Perl-Programmierer wissen schon, was los ist.
Trotzdem, wenn ein Algorithmus komplexer ist, daß versuche ich nicht irgendwelche obskuren Codeoptimierungen,
welche meist nur verschleiern, was eigentlich passiern soll.
Auch verwende ich ab und an lieber zwei REGEXEN statt einer komplizerten.
Und so weiter und so fort.
Langer Rede, kurzer Sinn,
Ich versuche, Code zu schreiben, den ich in einem Jahr auch noch lesen und verstehen kann.
Grüße
Klaus
auch hallo,
hmm, ich bin zum beispiel einer von der sorte, die auch gerne mal zwei versionen von einem script/source haben - eins kommentiert und eins optimiert fuer den live-einsatz ---> da wuerde dann sowieso noch mehr in einer zeile landen :-)
das kann man auch mit nem kleinem batch-prozess praktizieren.
cua
n.d.p.
Hi,
Doch frage ich mich beim Anblick einiger
Perl-Scripts, ob die jeweiligen Programmierer
entweder zu wenig Erfahrung oder ein besonders
abstraktes Gehirn haben.
ist das nicht egal, was von beidem? ;-)
Für den "realen Einsatz" (kein Übermensch-Programmierer
zur Hand, trotzdem soll der Code morgen noch wartbar
sein) gilt: Source-Code ist WORM (write once, read many).
Also ist Investition in Kommentare, Einrückung etc.
sinnvoll.
Ich schreibe überhaupt *zuerst* die Kommentare, weil
ich mir *dabei* bewußt werde, was ich brauche und was
nicht.
Ob ich dann für die Erledigung einer Teilaufgabe fünf
Zeilen Perl oder einen Funktionsaufruf hinschreiben
werde, das weiß ich doch erst, nachdem ich gesehen habe,
an wievielen anderen Stellen ich dieselbe Teilaufgabe
noch habe ... bei Top-Down-Entwicklung komme ich ohne
heftiges Kommentieren einfach nicht zurande.
Folglich schreibe ich *kein* Skript unter ca. 60%
Kommentar. Nicht mal eine sogenannte Fingerübung.
Es lohnt sich einfach nicht, zu "sparen".
mfG - Michael
(der sehr eigenartig und sehr tief einrückt, was zur
Erstellung sehr kurzer Funktionen diszipliniert, weil
seitliches Schrolling "bäh" ist ...)