Наипростейшим скриптом(после "Hello World!") является скрипт, который получает данные формы и обрабатывает их.
Предположим что вы разобрались, как организовать форму (со стороны HTML). Предположим, что форма заполнена и нажата кнопка "Submit", то есть данные пошли на обработку скрипту. Теперь становится понятным, что, собственно, требуется от скрипта.
Итак, в скрипт входят данные, закодированные urlencode и находящиеся в переменной QUERY_STRING либо подаваемые на STDIN. Во-первых, мы должны их(данные) получить. Для этого выполним следующее:
if ($ENV{'REQUEST_METHOD'} eq 'GET'){#Анализируем метод, GET или POST
$buffer=$ENV{'QUERY_STRING'};
}
elsif ($ENV{'REQUEST_METHOD'} eq 'POST'){
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
Мы считали данные в переменную $buffer. Теперь необходимо обработать эту сроку.
Зная, что поля разделены символом "&", будем использовать его в качестве разделителя
функции split.
@pairs = split(/&/, $buffer);Теперь организуем цикл по новообразованному масиву @pairs и, декодировав запрос, создадим хэш вида $hash{имя}=значение, коим будет являться %input.
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;#Декодирование запроса
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
$input{$name} = $value;#Заполнение хэша
}
А теперь поместив данные запроса в хэш %input, можно
делать с ними всё, что вашей душе угодно.
