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.. Причина: Захотелось :)
 
Ответить с цитированием

  #2  
Старый 26.02.2006, 17:52
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
бесспорно, прекрасном языке.
вынужден несогласиться.

почему выбрал именно про перл писать? других языков нет что-ли? =)

тема скобок не раскрыта.
тема strict не не раскрыта
тема метасимволов(типа \n) не раскрыта
тема ибли не раскрыта
тема сравнения не раскрыта
тема оформления кода не раскрыта

хотя это почти все юзается в статье
 
Ответить с цитированием

  #3  
Старый 26.02.2006, 17:55
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

почему перл сакс:
1. ООП прятянуто за уши. Тут без комментариев. Не нужны комментарии.
2. Переменные по умолчанию. Из-за сабжа приходится читать не только нужный отрывок скрипта, но и отрывок перед ним, чтобы понять, благодаря какой ебической силе меняется переменная.
3. Постусловия. Это вобще маразм - поставить условие в конец строки. Из-за такого кретинизма приходится читать код, а не просто поглядывать на управляющие структуры. Особенно усугуюляется это благодаря п.4.
4. Вольности в синтаксисе. Ну вот нахрена? Правильно - как проще, а не как короче. BlackMagic никому не нужен, кроме автора текста.
 
Ответить с цитированием

  #4  
Старый 26.02.2006, 17:57
Аватар для Evolution
Evolution
Познающий
Регистрация: 09.09.2005
Сообщений: 90
Провел на форуме:
827197

Репутация: 22
Отправить сообщение для Evolution с помощью ICQ
По умолчанию

ко всему уважению к автору, я бы луше купил/скачал учебник.
а на форуме про язык програмирования писать глупо, т.к. всё описать всёравно не сможешь(времи оч много займёт)...да и статей тогда будкт не один десяток
 
Ответить с цитированием

  #5  
Старый 26.02.2006, 17:59
Аватар для tclover
tclover
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
Провел на форуме:
9751364

Репутация: 1847


По умолчанию

1. начну писать продолжение
2. могут идти по своему выбору либо сюда либо сразу в /dev/null.
3. Изучив один язык легко вычуить другое.
И 4. Пля. Там написано куда идти таким умным парням как ты - двигай на wasm.ru и там уже можешь поумничать вволю.
Вольности в синтаксисе - как хочу так и пишу.
Насчёт того что перл противопоказан новичкам - не вижу ни оной причины для этого. Новичкам ничего не противопоказано, даже ассм. Начинай хоть с него. Без разницы.

Последний раз редактировалось Trampled_clover; 26.02.2006 в 18:02..
 
Ответить с цитированием

  #6  
Старый 26.02.2006, 18:00
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
Вы должны добавить репутацию кому-то еще, прежде чем сможете снова добавить ее Trampled_clover.
потом + поставлю значит )

Цитата:
Алерт! Статья для новичков! Все кто уже потирает руки с желанием нагадить в комментах - валите отсюда сразу.
мне кажется перл новичкам противопоказан. Его постепенно тем более сложно изучать.
 
Ответить с цитированием

  #7  
Старый 26.02.2006, 18:09
Аватар для tclover
tclover
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
Провел на форуме:
9751364

Репутация: 1847


По умолчанию

Цитата:
тема ибли не раскрыта
Это ты не туда зашёл Тему ибли раскрывать и не собирался.
 
Ответить с цитированием

  #8  
Старый 26.02.2006, 19:01
Аватар для Morph
Morph
Постоянный
Регистрация: 13.08.2004
Сообщений: 957
Провел на форуме:
1770063

Репутация: 429


По умолчанию

раскрой тему ебли.

А если серьезно написал бы с примерами там как примерно сплойты пишуться объяснил бы что к чему.
Интересно многим было бы.
 
Ответить с цитированием

  #9  
Старый 26.02.2006, 19:11
Аватар для tclover
tclover
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
Провел на форуме:
9751364

Репутация: 1847


По умолчанию

Цитата:
А если серьезно написал бы с примерами там как примерно сплойты пишуться объяснил бы что к чему.
Интересно многим было бы.
Вот сразу прямо и в сплоиты. Там же два раза написано - "Для новичков" и "С нуля". Всему своё время.
 
Ответить с цитированием

  #10  
Старый 26.02.2006, 19:52
Аватар для gazta
gazta
Познающий
Регистрация: 16.10.2005
Сообщений: 38
Провел на форуме:
236836

Репутация: 9
По умолчанию

лучше было бы в файл всё загнать и ссылками давать так удобно и практично

А так да клёва (особенно для меня тк в перле не шарю)

И вообще взялся доведи до канца и не бросай как принято у вас на античате
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Опасность ошибок 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