CuTTer (icutter@mail.ru)

Perl для перцев

Xakep, номер #020, стр. 020-042-6


$value="ляля-кал-выкинь-отстой";

@values=split (/-/,$value);

$value2=join (":", @values);

print $value2;

На мониторе должно появиться вот это: ляля:кал:выкинь:отстой. В Перле также существует полезная функция substr. Она поможет тебе вырезать фрагмент строки. Вот ее параметры:

$a = substr ($строка, начало, длина);

Начальная позиция определяется следующим образом: первый символ - это нуль, а второй - только единица. Длина - это количество символов, которое надо извлечь из строки. Чтобы легче понять все это, напишем программу:

$what="hello, MazaFucka!"; # $what - первоначальная строка

$get=substr ($what, 7, 10);

print $get;

Хе-хе, после запуска программы тебя обидно обзовут, сказав, что ты MazaFucka!. Но ты на нее не обижайся. :). Просто сотри ее.

Basic CGI: цгайки без понтов

Вообще, как мне кажется, Перл - почти идеальный язык для написания программ под Интернет. Можно писать на васике, паскале, сях и еще чем-нибудь, но perl-coding меня прет больше всех.

Чтобы и ты от него проперся, я расскажу про полезные переменные, которые тебе понадобятся при написании скриптов под CGI. Если ты не знаешь, что такое CGI, то я тебе объясню. CGI - Common Gate Interface. Эта хрень сделана, чтобы ты мог нормально писать проги для Инета. Ну так вернемся к нашим ежам, ой, к переменным, точнее к хешам :). Начнем с хеша %ENV. В нем хранится почти вся инфа, передаваемая нашей программе. Давай просто напишем скрипт, чтобы ты все понял:

#!/usr/local/bin/perl

print "Content-type: text/html\n\n";

print "Ваш IP: $ENV{REMOTE_ADDR}
\n";

print "Параметры: $ENV{QUERY_STRING}
\n";

print "О пользователе: $ENV{HTTP_USER_AGENT}
\n";

Эту программу нужно пускать через браузер, а не через компилятор. Тебе нужно будет закачать этот скрипт на какой-нибудь сервак, где есть поддержка Перла, или установить у себя на компе веб-сервер, благо их в нете много:

Apache Web server (Unix/Windows) - http://www.apache.ru

Xitami Web server (Unix/Windows) - http://www.imatix.com

OmniHTTPd (Windows) - http://www.omnicron.ab.ca/httpd/

MicroWeb server (Windows) - http://www.demobuilder.com

Small HTTP server (Windows) - http://wwwwin.wplus.net/pp/mrdoors/srv/

TinyWeb (Windows) - http://www.ritlabs.com

А сюда ты можешь залить все необходимые CGI-скрипты:

www.virtualave.net

www.hypermart.net

www.agava.ru

www.ero.ru

www.prohosting.com

www.freedom2surf.net

Например, если ты вызовешь программу через браузер так: http://127.0.0.1/cgi-bin/test.cgi?what=sucks, то на экране должно появиться вот это:

Ваш IP: 127.0.0.1

Параметры : what=sucks

О пользователе: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)

Наверное, ты не в курсе и не поймешь, что значит строка print "Content-type: text/html\n\n";. Она обозначает, что будет выводиться HTML файл, это сделано для того, чтобы браузер смог понять: какого хрена, тьфу, какого типа файл ему выдают.

Назад на стр. 020-042-5  Содержание  Вперед на стр. 020-042-7