Lo script indicato di seguito mostra come leggere variabili di ambiente con informazioni tramite il server e l'utente in Perl.

Inserisci il seguente codice in un file di testo e salvalo con l'estensione .pl. Carica il file nello spazio web e apri lo script tramite il browser.

#!/usr/bin/perl -w
#
# V 1.0 / 13.02.2001
#

use CGI qw/:standard fatalsToBrowser/;
use strict;

print header();
print start_html( -title => 'Lettura di variabili di ambiente con Perl',
-author => 'support@hosting.1and1.it');

print p("La maggior parte delle informazioni necessarie a un programma CGI è resa disponibile da variabili di ambiente. È possibile accedere a queste variabili allo stesso modo in cui si accede a qualsiasi altra variabile di ambiente (in Perl tramite la variabile hash %ENV). Nella seguente tabella sono elencate le variabili di ambiente disponibili per uno script CGI.");

print table(
{-border=>'1'},
Tr(
[
th(['Variabile di ambiente','Contenuto','Valore per questo accesso']),

td(['AUTH_TYPE','Il metodo di autenticazione utilizzato per verificare l'utente',"$ENV{'AUTH_TYPE'}"]),

td(['CONTENT_LENGTH','La lunghezza dei dati di modulo trasmessi',"$ENV{'CONTENT_LENGTH'}"]),

td(['CONTENT_TYPE','Il formato dei dati di modulo',"$ENV{'CONTENT_TYPE'}"]),

td(['DOCUMENT_ROOT','La directory di base di tutti i documenti web del tuo sito',"$ENV{'DOCUMENT_ROOT'}"]),

td(['GATEWAY_INTERFACE','La versione del protocollo CGI utilizzato',"$ENV{'GATEWAY_INTERFACE'}"]),

td(['HTTP_ACCEPT','Un elenco dei formati accettati del tuo browser',"$ENV{'HTTP_ACCEPT'}"]),

td(['HTTP_COOKIE','Elenco dei cookies trasferiti',"$ENV{'HTTP_COOKIE'}"]),

td(['HTTP_FROM','Il tuo indirizzo e-mail definito nel browser',"$ENV{'HTTP_FROM'}"]),

td(['HTTP_REFERER','L'ultimo sito web visitato',"$ENV{'HTTP_REFERER'}"]),

td(['HTTP_USER_AGENT','Nome del browser utilizzato',"$ENV{'HTTP_USER_AGENT'}"]),

td(['PATH_INFO','Percorso dello script CGI sul sito',"$ENV{'PATH_INFO'}"]),

td(['PATH_TRANSLATED','Percorso assoluto dello script CGI',"$ENV{'PATH_TRANSLATED'}"]),

td(['QUERY_STRING','I dati di modulo trasmessi allo script',"$ENV{'QUERY_STRING'}"]),

td(['REMOTE_ADDR','L'indirizzo IP dell'utente',"$ENV{'REMOTE_ADDR'}"]),

td(['REMOTE_HOST','L'IP risolto dell'utente','<font color="brightred">disattivato in PureTec !</font>']),

td(['REMOTE_IDENT','Nome dell'utente del browser (UNIX)',"$ENV{'REMOTE_IDENT'}"]),

td(['REMOTE_USER','Nome dell'utente dopo un'autenticazione',"$ENV{'REMOTE_USER'}"]),

td(['REQUEST_METHOD','Il metodo utilizzato per la query',"$ENV{'REQUEST_METHOD'}"]),

td(['SCRIPT_NAME','Percorso virtuale dello script',"$ENV{'SCRIPT_NAME'}"]),

td(['SERVER_NAME','Nome del server (virtuale)',"$ENV{'SERVER_NAME'}"]),

td(['SERVER_PORT','Numero porta lato server',"$ENV{'SERVER_PORT'}"]),

td(['SERVER_PROTOCOL','Nome e versione del protocollo di trasferimento utilizzato',"$ENV{'SERVER_PROTOCOL'}"]),

td(['SERVER_SOFTWARE','Nome e versione del server HTTP',"$ENV{'SERVER_SOFTWARE'}"])
]
)
);

print p("Le variabili vuote vengono compilate solo quando sono effettivamente aperte sotto forma di script CGI");
print p("Il <a href=\"enviro_highlight.html\">codice sorgente</a> di questa pagina mostra la query di queste variabili e l'utilizzo del modulo CGI al momento della creazione
siti dinamici");
print hr;
print p("L'elenco delle variabili è tratto dall'ottimo libro <a href=\"http://oreilly.com/tim/\">Perl in a Nutshell</a> ");


end_html;