in while-schleife subroutine aufrufen oder nicht
Alex
- perl
hi,
ich habe eine while-schleife die ca. 40 mal durchläuft, kann ich jetzt immer eine subroutine aufrufen oder wäre es besser den programmcode in die schleife zu schreiben, weil das prog sonst immer wieder die subroutine aufrufen muss.
die subroutine wäre vorteilhaft weil ich sonst den quellcode der in der subroutine wäre zweimal ins prog schreiben müsste.
$sql = qq{select * from tabelle where h=1}; ### einmal mit suche
while(@asd = $sth->fetchrow_array) {
subroutin();
}
#danach
$sql = qq{select * from tabelle}; ### und einmal ohne suche
while(@asd = $sth->fetchrow_array) {
subroutin();
}
hi,
ich habe eine while-schleife die ca. 40 mal durchläuft, kann ich jetzt immer eine subroutine aufrufen oder wäre es besser den programmcode in die schleife zu schreiben, weil das prog sonst immer wieder die subroutine aufrufen muss.
die subroutine wäre vorteilhaft weil ich sonst den quellcode der in der subroutine wäre zweimal ins prog schreiben müsste.
Subroutinen sind immer vorteilhaft, weil:
Tipp:
use strict;
Und deklariere in jeder Subroutine eigene Variablen mit my(). Spätestens wenn du mal vor der Aufgabe stehst ein Script über 20 DIN A4 Seiten zu schreiben wirst du um eine strukturierte Programmierung nicht mehr herum kommen. Strict ist da sehr hilfreich, es hilft ungemein beim Debuggen wenn mal was nicht läuft. Beende jede Subroutine mit return; ...
Erwin
Tipp:
use strict;Und deklariere in jeder Subroutine eigene Variablen mit my(). Spätestens wenn du mal vor der Aufgabe stehst ein Script über 20 DIN A4 Seiten zu schreiben wirst du um eine strukturierte Programmierung nicht mehr herum kommen. Strict ist da sehr hilfreich, es hilft ungemein beim Debuggen wenn mal was nicht läuft. Beende jede Subroutine mit return; ...
vielen dank, das weiss ich auch, das stück programmcode sollte nur darstellen wie ich das meine. :-)
Hi,
kann ich jetzt immer eine subroutine aufrufen
natürlich, warum denn nicht?
oder wäre es besser den programmcode in die schleife zu schreiben, weil das prog sonst immer wieder die subroutine aufrufen muss.
Was wäre daran schlimm?
$sql = qq{select * from tabelle where h=1}; ### einmal mit suche
while(@asd = $sth->fetchrow_array) {
Ich vermute nebenbei, Du möchtest
perldoc -f my
perldoc strict
perldoc warnings
lesen.
Cheatah
ich habe eine while-schleife die ca. 40 mal durchläuft, kann ich jetzt immer eine subroutine aufrufen oder wäre es besser den programmcode in die schleife zu schreiben, weil das prog sonst immer wieder die subroutine aufrufen muss.
Solche Gedanken brauchst du dir nur zu machen, wenn du auf assembler ebene absolut Zeit kritische Programme schreibst.
Der Zeitaufwand um eine funktion aufzurufen sollte heutzutage vernachlässigbar sein.
die subroutine wäre vorteilhaft weil ich sonst den quellcode der in der subroutine wäre zweimal ins prog schreiben müsste.
$sql = qq{select * from tabelle where h=1}; ### einmal mit suche
while(@asd = $sth->fetchrow_array) {
subroutin();
}#danach
$sql = qq{select * from tabelle}; ### und einmal ohne suche
while(@asd = $sth->fetchrow_array) {
subroutin();
}
Wobei ich mir nicht sicher bin ob man das nicht optimieren kann. Je nach dem was du in der Schleife machst, kann es durchaus sinnvoll nur das zweite Konstrukt zu verwenden und dort in der schleife die Bedingung abzufragen.
Das hängt aber auch von der Anzahl der daten ab.
Struppi.
Hallo,
$sql = qq{select * from tabelle where h=1}; ### einmal mit suche
while(@asd = $sth->fetchrow_array) {
subroutin();
}
...
$sql = qq{select * from tabelle}; ### und einmal ohne suche
while(@asd = $sth->fetchrow_array) {
subroutin();
}
... kann es durchaus sinnvoll nur das zweite Konstrukt zu verwenden und dort in der schleife die Bedingung abzufragen.
... oder aber einen allgemeineren Ansatz in eine Subroutine zu packen und das SQL-Statement aufgrund der übergebenen Parameter zusammenbauen;-)
Grüße
Klaus