PERL - статьи

       

Встроенные хеши


Переменные окружения, использующие встроенные хэши %SIG, %ENV, %FORM{}.

%SIG - хэш, в котором хранятся обработчики различных

ситуаций, возникающих в perl. Например строка local $SIG{__WARN__} = sub{}; отключает предупреждающие сообщения.

%ENV содержит значения переменных среды(окружения), заданных на момент запуска сценария(скрипта).

Ключами обычно бывают имена переменных среды(но их состав зависит от операционной системы), изменение этих значений

вызовет изменение окружения для процессов потомков.

#!/usr/bin/perl/ -w

while (($key, $value) = each(%ENV)){

print "$key => $value\n";

}

программа выдает:

SERVER_SOFTWARE => Apache/1.3.11 (FreeBSD) mod_perl/1.21 PHP/3.0.14

GATEWAY_INTERFACE => CGI/1.1

DOCUMENT_ROOT => /usr/local/www/data



UNIQUE_ID => OZaSFsHofQoAAEd@Cn8

REMOTE_ADDR => 195.202.122.14

SERVER_PROTOCOL => HTTP/1.0

SERVER_SIGNATURE => Apache/1.3.11 Server at www.mojdodir.ru Port 80

REQUEST_METHOD => GET

REMOTE_HOST => www.mojdodir.ru

QUERY_STRING =>

HTTP_USER_AGENT => Mozilla/4.73 [en] (Win98; I)

PATH => /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin

HTTP_ACCEPT => image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*

HTTP_CONNECTION => keep-alive

REMOTE_PORT => 3633

SERVER_ADDR => 195.202.122.14

HTTP_ACCEPT_LANGUAGE => en,ru

HTTP_CACHE_CONTROL => max-age=259200

SCRIPT_NAME => /cgi-bin/1.pl

SCRIPT_FILENAME => /usr/local/www/cgi-bin/1.pl

HTTP_ACCEPT_ENCODING => gzip

SERVER_NAME => www.mojdodir.ru

HTTP_PRAGMA => no-cache

REQUEST_URI => /cgi-bin/1.pl

HTTP_ACCEPT_CHARSET => iso-8859-1,*,utf-8

HTTP_X_FORWARDED_FOR => 15.0.0.23

SERVER_PORT => 30

HTTP_HOST => www.mojdodir.ru

SERVER_ADMIN => webmaster@www.mojdodir.ru

HTTP_VIA => 1.0 cache.www.mojdodir.ru:3363 (Squid/2.3.STABLE1)

Непосредственно из скрипта элементы хэша %ENV можно вызывать

$ENV{'HTTP_CACHE_CONTROL'} или $ENV{'HTTP_USER_AGENT'},

смотря что нужно вызывать.

%FORM содержит данные, вводимые из формы методом POST: html форма такая:

<form action="/cgi-bin/1.pl" method="post">

<input type="text" name="name1" size=10 maxlength=10>

<input type="text" name="name2" size=10 maxlength=10>

<input type="text" name="name3" size=10 maxlength=10>

<input type="submit" value="send">

<input type="reset" value="reset"></form>

Если мы введем в поле name1 qwe, name2 rty, name3 asd и нажмем send, то через STDIN передаются данные в виде: name1=qwe&name2=rty&name3=asd и содержимое хэша

%FORM(

name1 => qwe,

name2 => rty,

name3 => asd);

Значения полей name* можно получать $FORM{'name1'}, $FORM{'name2'} и т.д.



Содержание раздела