Tutorial :What's the Perl equivalent of PHP's $_SERVER[…]?



Question:

What's the Perl equivalent for the following PHP calls?

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

Any help would be much appreciated.


Solution:1

Environment variables are a series of hidden values that the web server sends to every CGI you run. Your CGI can parse them and use the data they send. Environment variables are stored in a hash called %ENV.

For example, $ENV{'HTTP_HOST'} will give the The hostname of your server.

#!/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>";  

For more details see CGI Environmental variables


Solution:2

Another way, than variable environement, is to use CGI :

  use strict;  use warnings;  use CGI ;    print CGI->new->url();    

Moreover, it also offers a lot of CGI manipulation such as accessing params send to your cgi, cookies etc...


Solution:3

Or you can do this and use the variable $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};  }  


Solution:4

What's the environment you're working in? If it's CGI script try:

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

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »