Что такое Perl-эквивалент PHP _SERVER [...]? - PullRequest
6 голосов
/ 05 августа 2010

Что такое эквивалент Perl для следующих вызовов PHP?

$_SERVER["HTTP_HOST"]
$_SERVER["REQUEST_URI"]

Любая помощь будет высоко ценится.

Ответы [ 4 ]

13 голосов
/ 05 августа 2010

Другой способ, кроме переменной среды, - использовать CGI:


use strict;
use warnings;
use CGI ;

print CGI->new->url();

Более того, он также предлагает множество манипуляций с CGI, таких как при доступе к параметрам отправляйте их в cgi, cookies и т. д. *

6 голосов
/ 05 августа 2010

Переменные среды представляют собой серию скрытых значений, которые веб-сервер отправляет каждому CGI, который вы запускаете.Ваш CGI может проанализировать их и использовать данные, которые они отправляют.Переменные среды хранятся в хэше с именем % ENV .

Например, $ENV{'HTTP_HOST'} даст имя хоста вашего сервера.

#!/usr/bin/perl

print "Content-type:text/html\n\n";
print <<EndOfHTML;
<html><head><title>Print Environment</title></head>
<body>
EndOfHTML

foreach my $key (sort(keys %ENV)) {
    print "$key = $ENV{$key}<br>\n";
}

print "</body></html>";

Подробнее см. CGI Переменные среды

5 голосов
/ 04 февраля 2014

Или вы можете сделать это и использовать переменную $ page_url.

my $page_url = 'http';
$page_url.='s' if $ENV{HTTPS};
$page_url.='://';
if($ENV{SERVER_PORT}!=80)
{
    $page_url.="$ENV{SERVER_NAME}:$ENV{SERVER_PORT}$ENV{REQUEST_URI}";
}
else
{
    $page_url.=$ENV{SERVER_NAME}.$ENV{REQUEST_URI};
}
2 голосов
/ 05 августа 2010

В какой среде вы работаете? Если это скрипт CGI, попробуйте:

use Data::Dumper;
print Dumper \%ENV;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...