Subroutine
Kommentator
- cgi
Hallo!
Ich habe da zwei Subroutinen, die nicht so richtig funktionieren wollen. Bestimmt nur kleine Fehler, aber ich komme nicht drauf.
Erste:
sub var {
my %p = ();
$p{$_} = param($_) for (param());
return($p{$_});
}
Subroutine soll Daten aus Formular auslesen und dann diese zur Verfügung stellen. Ohne die Subroutine funktioniert es problemlos (return ist dabei dann weggelassen) . Würde es aber gerne in eine Routine mit dem Aufruf var(); packen, da es Zeit spart.
Zweite:
sub ausgabe($)
{
print "Content-Type: text/html\n\n";
my $html = get("$p{'shift'}");
for ($html) { s/<%%(.+?)%%>/$p{$1}/egs; }
return($html);
}
...
print ausgabe("nextpage");
Leider will die auch nicht so recht.
Vielleicht weiss jemand weiter.
Danke!
use Mosche;
Erste:
sub var {
my %p = ();
$p{$_} = param($_) for (param());
return($p{$_});
}
Du legst jedes Mal in deiner Subroutine eine neue Variable an? Das ist sehr ineffizient. Greife doch lieber direkt auf param() zu, oder? Abgesehen davon ist $_ in der return Anweisung nicht unbedingt so definiert, wie du es willst. Willst du einen bestimmten Wert aus den Parametern auslesen? Dann solltest du vielleicht $_[0] benutzen statt $_. Willst du den gesamten Hash haben? Dann übergib auch den gesamten Hash.
for ($html) { s/<%%(.+?)%%>/$p{$1}/egs; }
Eas soll diese for-Schleife hier? Ist zwar syntaktisch nicht falsch, allerdings vollkommen unsinnig. Du willst irgendwas erreichen, dessen Grund ich nicht erkennen kann.
use Tschoe qw(Matti);
Die for Schleife nutze ich, um alle Platzhalter (<%%Platzhalter%%>) in irgendeinem Dokument zu ersetzen. Bei dem Parametern will ich erstmal alle übergebenen Variablen eines Formulars auslesen und diese später nutzen.