sub direkt anwählen
Sandra
- perl
Hallo
Kann mir jemand bei diesem Problem helfen?
Ich möchte gerne wissen wie ich mit dem ausführen eines Perlscriptes direkt eine sub starten kann Beispiel:
Ich rufe das Script so auf test.pl?1 dann soll im script die sub 1 ausgegeben werden.
So soll es von sub 1 bis sub 9 gehen.
Ist so was möglich kann mir jemand sagen wie dass geht (beispiel).
MfG
Sandra
Hi,
Hallo
Kann mir jemand bei diesem Problem helfen?
Ich möchte gerne wissen wie ich mit dem ausführen eines Perlscriptes direkt eine sub starten kann Beispiel:
Ich rufe das Script so auf test.pl?1 dann soll im script die sub 1 ausgegeben werden.
So soll es von sub 1 bis sub 9 gehen.
Ist so was möglich kann mir jemand sagen wie dass geht (beispiel).
MfG
Sandra
So sollte es gehen:
$weiter=$ENV{'QUERY_STRING'};
&$weiter;
Gruss
Frédéric
Hallo
Danke,Frédéric!
Aber ein Problem habe ich immer noch wie kann ich ein default definieren.
Also zumbeispiel wenn man es nur mit test.pl aufruft?
Weil so gibt ein 500er.
Wenn ich es aber so aufrufe test.pl?an gibt er den Inhalt der sub an aus .
Hoffentlich versteht ihr was ich meine :).
Cu
Sandra
re hi,
Hoffentlich versteht ihr was ich meine :).
Ja ich denke schon.
Aber ein Problem habe ich immer noch wie kann ich ein default definieren.
Ganz einfach. Wenn kein Fragezeichen vorhanden ist, dann ist $ENV{'QUERY_STRING'} nicht definiert. So ist auch $weiter nicht definiert.
Also:
unless ($weiter){
&was_auch_immer_du_willst;
}
oder kurz:
&was_auch_immer_du_willst unless $weiter;
Gruss,
Frédéric
Hin
Du weißt aber das das ganze eine massive Sicherheitslücke sein kann? Dadurch kann er irgendwelche in deinem Script vorhandenen Subroutinen aufrufen was besonders wenn mann einige Module eingebunden hat sehr gefährlich sein kann.
Ich würde es eher so machen:
use strict;
use CGI; #oder ein selbstgeschriebene Variante
my $cgi = new CGI;
my $aufruhfparam = $cgi->param("sub");# dadurch kannst du noch andere Parameter übergeben
if ($aufruhfparam == "test1" )
{
&test1;
}
elsif ($aufruhfparam == "test2" )
{
&test2;
}
else
{
&default;
}
Wenn du es so machst muss die Url halt in der Form http://www.deineseite.tld/script.pl?sub=irgendwas/ sein.
Das hat den vorteil das nur von dir vorhergesehene Subs benutzt werden können.
Ist jetzt nicht getested, also können ein paar Tippfehler drin sein.
mfg
Andres Freund