PHP -> PERL?
stefanpr
- perl
Habe folgenden PHP-Code:
$self_url = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'];
$self_url = substr($self_url, 0, strrpos($self_url, '/')) . "/";
Ich schaff es nicht, den in PERL zu übersetzen. Das kann doch nicht so schwer sein, oder?
Kann mir evtl. jmd. einen Tipp geben?
Danke SPR
Habe folgenden PHP-Code:
$self_url = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'];
$self_url = substr($self_url, 0, strrpos($self_url, '/')) . "/";Ich schaff es nicht, den in PERL zu übersetzen. Das kann doch nicht so schwer sein, oder?
Du Suchst wahrscheinlich
$self_url = $ENV{SCRIPT_NAME};
also die URL für das PERL/CGI-Script self.
--roro
Hallo.
Kann mir evtl. jmd. einen Tipp geben?
Wie wäre es mit einem regulären Ausdruck?
my $self_url = 'http://'.$ENV{'SERVER_NAME'}.$ENV{'SCRIPT_NAME'};
$self_url =~ s{[^/]*$}{};
Der hier entfernt alles am Ende von $self_url
, das kein Slash ist.
Schöne Grüße.
$self_url = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'];
$self_url = substr($self_url, 0, strrpos($self_url, '/')) . "/";
Du willst vermutlich die URL des Scriptes ohne dessen Namen haben, richtig?
> Ich schaff es nicht, den in PERL zu übersetzen. Das kann doch nicht so schwer sein, oder?
In der Tat, die Umgebungsvariablen, die du mittels $\_SERVER abfragst, sind CGI-Standard und in Perl via $ENV{NAME\_DER\_CGI\_VARIABLEN} erreichbar. Die funktion [substr](http://perldoc.perl.org/functions/substr.html) gibt es auch in Perl, die PHP-Funktion strrpos entspricht in Perl der Funktion [rindex](http://perldoc.perl.org/functions/rindex.html). Das ergibt:
~~~perl
my $self_url = 'http://' . $ENV['SERVER_NAME'] . $ENV['SCRIPT_NAME'];
$self = substr $self, 0, rindex($self, '/')+1;
Zusätzlich wird zum Ergebnis von rindex 1 addiert, das erspart das explizite Anhängen des Slashs.
Siechfred
Ich schaff es nicht, den in PERL zu übersetzen. Das kann doch nicht so schwer sein, oder?
In Perl ist es üblich für Standardaufgaben Module zu nutzen, in deinem Falle
CGI
Struppi.