Perl 将自定义环境变量设置为psgi hash plack

Perl 将自定义环境变量设置为psgi hash plack,perl,hash,plack,psgi,Perl,Hash,Plack,Psgi,在本例中,当我向dumper$env发出请求时,我会获得enviromment哈希psgi的所有数据 sub { my $env = shift; return [ 200, [], [ $env->{REMOTE_ADDR} ] ]; } 或者更直接地 sub { return [ 200, [], [ shift->{REMOTE_ADDR} ] ]; } 输出: 返回客户端的IP地址 如何将自己的自定义环境变量设置为psgi hash plac

在本例中,当我向dumper$env发出请求时,我会获得enviromment哈希psgi的所有数据

sub { 
  my $env = shift;  
  return [ 200, [], [ $env->{REMOTE_ADDR} ] ];  
}
或者更直接地

sub { 
  return [ 200, [], [ shift->{REMOTE_ADDR} ] ];   
}
输出:

返回客户端的IP地址

如何将自己的自定义环境变量设置为psgi hash plack

为什么我要这样做,我的案例涉及:

如果不可能这样做,我可以创建子类并将该功能添加到psgi web服务器吗?


感谢您花时间

假设您想在应用程序服务器中设置变量,这看起来是一些plack中间件的完美案例。对于本例,我发现,在app.psgi中可以使用:

# app.psgi
use Plack::Builder;

my $app = sub {
    return [ 200, [], [ shift->{var} ] ];
};

builder {
    enable "ReviseEnv", revisors => { 'var'  => 'custom',
                                      'var2' => 'other' };
    $app;
};
该文档还列出了设置简单文本以外的值的其他选项,例如包括其他
$env
数据或
%env
环境变量