ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Perl с нуля. Часть первая.
  #1  
Старый 26.02.2006, 16:02
Аватар для tclover
tclover
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
Провел на форуме:
9751364

Репутация: 1847


По умолчанию Perl с нуля. Часть первая.

Вот, как и обещал, пишу статью о программировании на этом, бесспорно, прекрасном языке.
Алерт! Статья для новичков! Все кто уже потирает руки с желанием нагадить в комментах - валите отсюда сразу.
Говорить я буду о перле под виндовс - это чтобы небыло потом дальнейших пререканий и недоразумений.
Непосредственно перед тем как мы начнём мучать этот язык, советую скачать -
ActivePerl(12.7MB)
Интерпретатор Перл.(Именно интерпретатор, а не компилятор, как его ошибочно называют многие)
EmEditor (3.1 MB) (Редактор) В нём Вы будете находить свои ошибки (а ошибки есть у всех и всегда) куда быстрее, чем в блокноте.
И маленький совет от меня - Когда будете устанавливать ActivePerl - создайте на диске C директорию usr и уже в неё ставьте Perl.
-------------
Поскольку за один раз проглотить перл неполучится - буду писать примерно раз в две недели продолжение.
Ну вот собственно с вступлением покончено раз и навсегда. Обратного пути у Вас нет . Вперёд!
---------------

Начало
Ну вот. Начинаем.
Перво-наперво напишем малюсенькую программку которая выведет надпись - "antichat - rulezzz4hax0rz".

Код:
#!/usr/bin/perl -w
print ("antichat - rulezzz4hax0rz\n");
Сохраняем это дело в файл с именем например antichat.pl
Открываем из cmd и смотрим на результат.
Теперь обьясню что мы только что сделали
Итак - первая строка говорит о том что это программа написана на перле и указывает путь к интерпретатору. Кроме того, как Вы наверное заметили здесь присутствует ключ -w. Этот ключ применяют для того что чтобы перл-интерпретатор предупреждал нас о заведомо опасных конструкциях программы. Вообщем на мой взгляд ничего существенного, но так лучше следить за качеством кода.
Вторая строка - это выполняемая часть нашей с Вами первой программы. Как видите здесь стоит функция print. В нашем случае print имеет только один аргумент - строку текста.
"\n" - означает переход на новую строку.
";" - Точка с запятой завершает оператор.

Теперь усложняем задачу - пишем прогу которая будет называть Вас по нику.
Наша прога сначала спросит ник, запишет его в переменную и выведет на экран.
Одно из мест для хранения значений (например текстовых) - скалярная переменная. Для хранения ника я возьму переменную $nick.
Получение данных осуществляется при помощи конструкции <STDIN>,
которая в нашем случае получит строку, которую мы в свою очередь присвоем переменной $nick.

Код:
#!usr/bin/perl -w
print "What is you nick-name?\n"; #Какой у тебя ник?
$nick = <STDIN>;
#Теперь нам осталось сказать "Привет" и указать значение переменной $nick
print "Hello,$nick!\n";
Упс... Забыл Если Вы всё сделали правильно, то Ваш ник и восклицательный знак отбразились на разных строчках.
Сейчас исправим - Дело в том, что например ник "tclover" поступает как "tclover\n". Чтобы избавиться от этого
мы воспульзуемся функцией chomp, которая принимает скалярную переменную и удаляет из её строкового значения символ перехода на новую строку - "\n"
chomp ($nick);

Теперь у нас получилось что-то вроде этого -

Код:
#!usr/bin/perl -w
print "What is you nick-name?\n"; 
$nick = <STDIN>;
chomp ($nick);
print "Hello,$nick!\n";
Вот так уже значительно лучше
Теперь усложним ещё больше. Мы же любим себя? Любим конечно, глупый вопрос
Тогда сделаем так, чтобы для нас любимых привествие было особым.Добавляем операцию сравнения.

Код:
#!/usr/bin/perl -w
print "What is you nick-name?\n";
$nick = <STDIN>;
chomp ($nick);
if ($nick eq "tclover"){
	print "Hello, tclover You - the Best!"; # Типа для нас
} else {
	print "Hello, $nick \n"; # Типа для всех остальных
}
В операции eq мы сравнили две строки. Если они равны, то результатом будет "истина".
Оператор if выбирает, какой блок операторов (это те что между фигурными скобками) выполняется - если выражение даёт в результате "истина", то выполняется первый блок, ну а если "ложь" - то выполняется второй блок.

Ну и последнее на сегодня.
Рассмотрим ещё один код. У всех кто открыл это (кроме товарища по имени tclover), ЭТО будет просить
ввести пароль.
Код:
	#!/usr/bin/perl -w
	$pass = "antichat"; # Обьявляем пароль - пароль сегодня "antichat"
	print "What is your name? \n";
	$nick = <STDIN>;
	chomp $nick;
	if ($nick eq "tclover"){
	print "Hello, tclover! You the Best! \n";
} else {
	print "Hello $nick! \n";
	print "What is the password? \n";
	$vopros = <STDIN>;
	chomp ($vopros);
	while ($vopros ne $pass){
	print "Nichrena, try again. What is the password? \n";
	$vopros = <STDIN>;
	chomp ($vopros);
	}
}
Поясню. сначала мы задали секретное слово поместив его в переменную $pass. Прога спрашивает вызывая функцию принт у пользователя пароль и сравнивает с тем что у нас есть. Введённые данные сравниваются с тем что мы задали в операции ne. Эта операция возвращает значение "истина", если сравниваемые строки не равны. Заметьте отличие от операции eq. Далее мы задествовали цикл while, который ваполняется до тех пор пока сравнение проходит с результатом "истина".

Ну и в заключение первой части: Всё это я писал для тех, кто ничего не знает о языках программирования, но очень хочет. Перл на мой взгляд наиболее лёгкий для изучения язык.
Все умники которые начнут кричать о ламероватости этой статьи могут идти по своему выбору либо сюда
либо сразу в /dev/null.
А те кто только начинают свой путь - удачи Вам в изучении этого языка. Как только найду время начну писать продолжение. Всем удачи!

Последний раз редактировалось Trampled_clover; 26.02.2006 в 16:22.. Причина: Захотелось :)
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Опасность ошибок Perl недооценивалась? 1251soldier Мировые новости 0 01.12.2005 20:56
Books Perl FRAGNATIC PHP, PERL, MySQL, JavaScript 0 11.08.2005 16:58
Обнаружение Sql инъекций в Oracle, часть первая k00p3r Чужие Статьи 1 12.07.2005 08:51
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23
Аудит аутентификации на Web-сайтах. Часть первая k00p3r Чужие Статьи 0 13.06.2005 11:22



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ