FAQ по PERL
Q: Что такое PERL и где его взять?
A. PERL - Practical Extraction and Report Language, простой и удобный язык программирования как правило используется для написания CGI программ, но может использоваться и в других целях. Последнии верси PERL совместимы со всеми основными операционными системами. Сам перл вы можете взять с сайтов www.activestate.com (для Win9x\NT\2k\XP) и www.perl.com (для nix). Также существуют компиляторы PERL для разных ОС их вы можете скачать по адресу www.indigostar.com Q: Какие веб-сервера использовать для тестирования своих программ?
A. ИМХО самый лучший вариант - это Apache (www.apache.org). Q: Где взять документацию по PERL?
A. Во-первых, вы можете воспользоваться документацией, которая поставляется вместе с PERL, во-вторых, существует множество русскоязычных сайтов, которые вы легко сможете найти в любой поисковой системе. Q: Где можно скачать уже готовые скрипты?
A. Существует множество каталогов скриптов на этих двух сайтах вы найдете все что искали: www.cgi.ru и www.scripts.com Q: Как правильно установить скрипт на сервере?
A. Для того чтобы скрипт заработал его надо закачивать в ASCII режиме (FTP клиенты как правило по умолчанию закачавают в ASCII, например CuteFTP), также если сервер находится на !nix системе вам надо указать права доступа к скрипту (chmod). Еще одна деталь - любое CGI приложение должно что-нибудь обязательно выводить на экран, пусть даже это content-type заголовок: print "Content-type: text/html\n\n"; Q: Как узнать путь к моему PERL?
A. Если вы под windows, то соответственно это путь к вашей папке PERL. Если же вы под !nix место нахождения PERL вы можете найти используя команду "which perl". Q: Что такое CPAN?
A. CPAN - Comprehensive Perl Archive Network, ресурс, где вы можете найти все, что связано с перлом. Если вам необходим какой-либо модуль, зайдите на CPAN и есть шанс что вы найдете то, что вам нужно. Q: Что такое "Регулярные выражения" и зачем они нужны?
A. "Регулярные выражения" aka "Поиск про шаблону" - средство поиска и замены строк. "Поиск про шаблону" - должно быть единственная (очень мощная) возможность PERL, является причиной использование PERL многими программистами. Например: $chmo = "xa xa xa xa"; $chmo =~ s/a/z/g; Используя это регулярное выражение мы ищем буквы "a" в переменной "chmo" и заменяем каждую букву "a" на "z", то есть теперь переменная $chmo = "xz xz xz xz" Научиться использовать все возможности регулярных выражений не так просто как кажется, поэтому поводу пишут немаленькие книги, но это стоит того. Очень важно не пренебрегать использованием этой возможностью языка, например для написания программ, где пользователь передает скрипту какую-либо информацию вам необходимо, используя "Поиск про шаблону" фильтровать данные, отправленные вам пользователем на потенциально опасные символы. Q: Как отправить mail на PERL с прикрепленными файлами?
A. Для этого вам надо использовать CPAN модуль Mime::Lite Q: Как узнать IP пользователя, который работает со скриптом?
A. $User_IP=$ENV{'REMOTE_ADDR'}; chomp ($User_IP); unless ($User_IP){$User_IP='xz';} Q: Когда я в windows я запустил программу на PERL мелькнуло окно ДОС и все, почему моя программа не работает?
A. Скорее всего ваша программа работает, просто она мгновенно выдает результат, PERL считает программу завершонной и закрывает окно, для того чтобы увидить результат вам надо в конец программы приписать <>; (стандартное окно ввода STDIN) или же запусить программу в консоли. Q: Я знаю что существуют методы передачи информации GET\POST\HEAD, чем они отличаются?
A. GET - выдается запрошенный ресурс, возможна передачи информации (http://server.com?
yes=1&no=0). HEAD - выдается только заголовок документа. Из заголовка можно узнать существует ли документ, его размер и еще некоторую информацию. POST - аналогичен методу GET, но не только запрашивает ресурс, но и передает ему некоторую информацию (через форму). Q: Как узнать есть ли уязвимые места в моей программе?
A. Для этого существует ключ "-T" #usr/bin/perl -T Q: Можно ли работать с mySQL на PERL?
A. А то! use DBI; $dbh = DBI->connect("DBI:mysql:$basaname", $login, $password);
Источник: неизвестен