Hallo Ich habe ein paar aktuelle Fragen, weil ich gerade mein Script am Überarbeiten bin.
Voraussetzung: Ich kann meine Scripts nur Online auf einem fernen Server testen, bin also defensiv in der Anwendung von mir noch unbekannten Funktionen.
ERSTE FRAGE
Wann eine Variable mit my deklarieren?
Die zwei unteren Varianten unterscheiden sich,
in Var 1 wird mit einer einzigen Variable gearbeitet
in Var 2 erhalte jedesmal ein frisches neues Array
was ist bessern
bezüglich Speicherverbrauch,
#Variante 1
for (my $1=1 , $i=100 , $i++){
my $link = $i."html";
open(DATENBLATT,"$basedir/$link") || die $! ;
my @main = <DATENBLATT>;
close(DATENBLATT);
# mach was mit @main
}
#Variante 2
my @main;
for (my $1=1 , $i=100 , $i++){
my $link = $i."html";
open(DATENBLATT,"$basedir/$link") || die $! ;
my @main = <DATENBLATT>;
close(DATENBLATT);
# mach was mit @main
}
ZWEITE FRAGE
Ich möchte nun
map()
anstelle von
foreach(){...}
verwenden
my @worklines;
foreach my $lines(@main){
if( $lines =~ /$wort1|$wort2/gi ){push(@worklines, $lines);}
}
würde neu zu :
my @worklines = map( /$wort1|$wort2/gi , @main );
Hierzu auch wieder die Frage, abgesehen dass es sich einfacher schreibt.
Wie verhalten sich map() und foreach() in Bezug auf performance?
Kann ich RegExp in der map Funktion genau gleich anwenden wie mit dem üblichen =~ Operator?
Gibt es eine Seite, die die map() Funktion ausführlich beschreibt
DRITTE FRAGE
Irgendwie liesst man doch viel von Missbrauch durch Bufferoverflows.
Ist es ratsam, dass ich allen Usereingabe Variablen auf maximale Länge kontrolliere?
zum Beispiel:
if (length($userinput) > 1000){&error("Kein normaler User Input");}
danke für Antworten
mfg Beat