什么是Perl相当于PHP的$ _SERVER [...]?

时间:2010-08-05 06:34:48

标签: perl cgi

以下PHP调用的Perl等价物是什么?

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

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:13)

另一种方式,比变量环境,是使用CGI:


use strict;
use warnings;
use CGI ;

print CGI->new->url();

此外,它还提供了很多CGI操作 访问params发送到您的cgi,cookies等...

答案 1 :(得分:6)

环境变量是Web服务器发送给您运行的每个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 Environmental variables

答案 2 :(得分:5)

或者你可以这样做并使用变量$ 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};
}

答案 3 :(得分:2)

你在做什么环境?如果是CGI脚本,请尝试:

use Data::Dumper;
print Dumper \%ENV;