2013-11-04 30 views
0

我試圖用Perl/Plack替換環境變量'Ben'。如果設置了環境變量(例如「Dave」),則它將打印出「Powered by Dave」。但如果沒有設置,它將默認爲'Ben'。如何在Perl/Plack中打印環境變量

目前,使用plackup -r

#!/usr/bin/env plackup 

my $app = sub { 
     my $env = shift; 

     return [ 
      200, 
      ['Content-Type', 'text/plain'], 
      ['Powered by Ben'], 
     ]; 

}; 

目前在下面的程序工作,我cpanfile包含以下

requires 'Plack' => '1.0028'; 
requires 'CGI::Emulate::PSGI' => '0.15'; 
requires 'CGI::Compile' => '0.16'; 
+0

我的Perl是有點生疏了,所以請這樣的:Perl的聲明'如果($ FOO) {x} else {y}',如果$ foo不存在,這是如何表現的?我的猜測是,一個現存的$ foo將執行第一個塊,而一個不存在的$ foo將執行第二個塊。 –

+1

類似於'[sprintf('Powered by%s',$ ENV {xxx} ||'Ben')]''作爲單引號的字符串不插值 – KeepCalmAndCarryOn

回答

1

通過Environment Varaible你的意思是,操作系統的環境或普拉克要求環境和因此一個HTTP請求參數? (他們完全不同)。

如果是前者,可以通過%ENV散列來訪問它。

如果是後者,則應閱讀Plack::Request的文檔。

(注:我從來沒有用過普拉克,我只用文檔去)

+2

如果是後者,它應該只在'$ env' - 已經在代碼中:) – miyagawa