CGI.pm

Если вы занимаетесь созданием CGIQпрограмм (которые в этой книге не рассматриваются), используйте модуль CGI.pm. Если только вы не уверены твердо в том, что делаете (а иногда даже в этом случае), вам не придется иметь дело с интерфейсом и разбором входного кода, с которыми у пользователей возникает столько проблем. Автор CGI.pm Линкольн Стейн (Lincoln Stein) потратил много времени на то, чтобы обеспечить работу своего модуля с большинством серверов и операционных систем. Просто используйте модуль и займитесь более интересными частями своего сценария. Модуль CGI существует в двух разновидностях: с традиционным функциональным и с объектноQориентированным интерфейсом. Мы будем использовать первую разновидность. Как и прежде, вы можете изучить примеры в документации CGI.pm. Наш простой сценарий CGI разбирает входные данные CGI и выводит имена и значения в виде текстового документа. В списке импорта используется обозначение :all –экспортный тег, определяющий группу функций вместо одной функции (как в предыдущих примерах).

#!/usr/bin/perl
use CGI qw(:all);
print header("text/plain");
foreach my $param ( param() )
{
print "$param: " . param($param) .


"\n";
}

Мы хотим выводить код HTML, а модуль CGI.pm содержит великое множество вспомогательных функций для этой цели. Он обеспечивает вывод заголовка CGI, начальных конструкций HTML функцией start_html(), а многие теги HTML выводятся функциями с соответствующими именами, например функция h1() для тега H1:

#!/usr/bin/perl
use CGI qw(:all);
print header(),
start_html("This is the page title"),
h1( "Input parameters" );
my $list_items;
foreach my $param ( param() )
{
$list_items .= li( "$param: " . param($param) );
}
print ul( $list_items );
print end_html();

Просто, не правда ли? Вам необязательно знать, как CGI.pm все это делает; просто поверьте, что он делает это правильно. Поручив всю «черную работу» CGI.pm, вы можете сосредоточиться на интересных частях программы. Модуль CGI.pm способен решать множество других задач: он обеспечивает работу с cookies, перенаправление, создание многостраничных форм и т. д. У нас нет возможности подробно описывать его в книге, однако вы сможете найти дополнительную информацию в документации модуля.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Базы данных и DBI
Использование отдельных функций модуля
Использование простых модулей
Модуль File::Basename
Модуль File::Spec

Вернуться в раздел: Perl / 10. Модули Perl