On Sat, 9 Jun 2007 14:26:09 +0200, fix wrote:
> Det ser godt nok ud til at perl er dødt, ud fra aktiviteten i denne
> konference. -jeg prøver alligevel:
Jazz is not dead, it just smells funny.
> jeg har et script som kaldes direkte for at starte en app:
>
www.mydom.dk/cgi-bin/startscript?navn=emne1
> man får så eksekveret script emne1 resp. de andre emner.
(Denne forklaring er fuldstændig sort tale for mig...)
> problemet er, at hvis man angiver urlen
>
www.mydom.dk/cgi-bin/startcsript[?] får man en menu med tilgængelige
> emner, hvilket jeg ikke ønsker.
> Jeg vil derfor gerne allerførst i scriptet have en stump kode, som
> tester om der er en parameter ?emne1
Var det ikke mere oplagt at ændre den funktion i dit script der laver
menuen?
Så bliver det klarere for den der senere læser scriptet at den funktion
ikke er tilgængelig længere.
> hvis ikke så forcere den eller gå i fejl
Hvad mener du med at 'forcere' her?
> de første linier i scriptet ser således ud, hvis de kan manipuleres:
> $|++;
> # Parse the CGI params into a hash
> my %params;
> my $cgi = new CGI;
> foreach my $name ($cgi->param) {
> $params{$name} = $cgi->param($name); # watch out! no multi-valued
> params!
> }
Hvis du bare vil checke om der er nogle parametre eller ej, kan du sige:
if ($cgi->param) {
# There is at least one parameter
}
else {
# No parameters given
}
En kort måde at afbryde scriptet med en fejl når der ingen parametre
kunne være:
die "No parameters passed" if (!$cgi->param);
Mvh.
Adam
P.S. Hele den løkke du har der bygger %params op kan erstattets med:
my %params=$cgi->Vars;
i følge perldoc CGI.
--
"Money always takes the place of life" Adam Sjøgren
asjo@koldfront.dk