PHP中的$ _SERVER ['HTTP_HOST']的Perl等价物是什么?

Sar*_*tha -1 php perl

如何在Perl脚本中获取当前域名,即$_SERVER['HTTP_HOST']PHP变量的等效Perl代码?

dax*_*xim 8

单独的主机名几乎从不有用,您还需要服务器端口,组合昵称为netloc.您很可能需要此值来构造脚本的URI.这已经包含在框架中,无需手动执行此操作.以下两种方式的代码示例.


在PSGI中,从PSGI环境哈希中读取"变量" HTTP_HOST(或者,SERVER_NAMESERVER_PORT),或者uri在Plack :: Request中调用该方法.

use Plack::Request qw();
my $app = sub {
    my ($env) = @_;
    my $req = Plack::Request->new($env);
    return [200, ['Content-Type' => 'text/plain'], [
        sprintf "Host: %s\nURI: %s", $env->{HTTP_HOST}, $req->uri
    ]];
};
Run Code Online (Sandbox Code Playgroud)

在CGI,结合POSIX环境变量SERVER_NAMESERVER_PORT,或致电url法.

use CGI qw();
my $c = CGI->new;
print $c->header('text/plain');
print "Host: $ENV{SERVER_NAME}:$ENV{SERVER_PORT}\n";
print "URI: " . $c->url;
Run Code Online (Sandbox Code Playgroud)