ich befasse mich schon eine zeit lang mit perl aber mir sind noch einige sachen unklar und hoffe das sie mir hier jemand artgerecht beantworten kann ;-)
- Was/Wo genau liegt der unterschied zwischen exit(0) und exit(1)? (ich weiss dass bei exit(1) das skript mit einem fehler beendet)
Falsch. Das tut es nicht.
- Ich lese hin und wieder das wenn man form/inputfelder mit perl auswertet bestimmte eingaben sperren sollte wie zum beispiel eine url oder -r o.ä. aber was genau muss ich sperren lassen? Gibt es da eine liste?
Du vermittelst Geraune.
Du sollst nicht einfach Userinput akzeptieren. Zum beispiel sollte es durch Userinput nicht möglich sein, Pfade zu setzen.
Du willst bestimmt nicht zulassen:
open($fh, "<", $useriput ) ...
Nutze taint
#!/usr/bin/perl -wT
Dies zwingt dich, alle Useriputs durch den einzig möglichen Untaint Vorgang zu überprüfen.
- Wie gross sollte ein skript max. werden oder ist das egal/hat es nachteile? Ich habe zum beispiel ein cgi skript das inzwischen fast 200kb groß ist.
Die grösse eines Skripts spielt keine Rolle. Der Speicherverbrauch und die CPU spielen eine Rolle.
1 schlechtes 1kb Skript kann ein gutes 1MB Script in einem solchesn Kontest leicht schlagen.
- Warum sollte man variablen o.ä. nicht in anführungszeichen schreiben?
Weil du dadurch von Perl zwei Oprationen verlangst, wo eine ausreicht.
typisch ist der print Befehl. Print ist bereits ein Listenbefehl
print "x", $var;
was ich meine ist das:
print "Hallo mein name ist $name";
es wird aber immer geraten es so zu schreiben:
print "Hallo mein name ist " . $name;
Nein, das ist der gleiche Blödsinn: eine zusätzliche Operation. Nutze den Listenkontext von print
print "Hallo mein name ist " , $name;
mfg Beat;