Курс по
програмиране на Perl
Въведение в PerlВъведение в Perl
Автор: Красимир Беров, Превод: Теодора Берова
I-can.eu С люб...
Съдържание
1. Кратка история
2. Основни понятия. Интерпретиран (скриптов) или
компилиран?
3. Виртуална машина и платформен...
Кратка история
● 1986/7 – Perl е изобретен от Лари Уол в Лабораторията
по реактивни двигатели в NASA.
● 1987-Dec-18 Perl 1...
Основни понятия
● P.E.R.L (Pathologically Eclectick Rubish Lister –
патологично-еклектично средство за извеждане
на безсми...
Основни понятия
● Езици за програмиране
● C/C++
● Java
● Tcl
● Perl
● PHP
● Ruby
● JavaScript
Основни понятия
● Интерпретиран или компилиран език е Perl?
Основни понятия
● Интерпретиран?
– Един интерпретиран език се нуждае от програма,
наречена интерпретатор, която да обработ...
Основни понятия
● Компилиран?
– Компилираният език използва компилатор, който
обработва кода еднократно.
– След това, вие ...
Виртуална машина
● Виртуална машина == perl като
програма/интерпретатор
● Работата на интерпретатора се дели на два
основн...
Виртуална машина
● Кратък преглед на етапите на работа на perl
– Компилиране
● Стартиране
● Обработка на изходния/програмн...
Платформена независимост
● Виртуалната машина на Perl ни освобождава от
необходимостта да се съобразяваме с
особеностите н...
Защо Perl?
● Лесен за изучаване
– Научаването на малко Perl може да ви заведе
по-далече, отколкото предполагате.
– По-лесе...
Защо Perl?
● Преносим
– Perl е пренесен на почти всички съвременни
операционни системи, като Windows, Mac OS X,
Linux, Uni...
Защо Perl?
● „Говори“ текста (във всякакво кодиране).
● „Мисли“ за файловете от гледна точка на редове и
изречения (по под...
Защо Perl?
● И накрая,
– Защото така искате
– Защото вашият шеф иска така :)...
CPAN и PPM
● CPAN (Comprehensive Perl Archive Network) е най-
големият източник на многократно използваем и
стандартизиран...
Инсталиране (Windows/Unix)
– Linux/Unix
● Няма нужда – вече го имате инсталиран.
● Използвайте perlbrew за да инсталирате ...
Основи на синтаксиса
● Един Perl скрипт или програма се състои от
една или повече конструкции.
● Тези конструкции са запис...
Основи на синтаксиса
● Конструкциите в Perl завършват с точка и
запетая (;)
#this is a fully functional program#this is a ...
Основи на синтаксиса
● Коментарите започват със символа диез (#) и
важат до края на реда.
#this is a fully functional prog...
Основи на синтаксиса
● Паузите са без значение...
printprint
"Hello, world""Hello, world"
;;
Основи на синтаксиса
● ...освен когато са вътре в низ с кавички (“...”)
# this would print with a line-break in the middle...
Основи на синтаксиса
● Двойни или единични кавички могат да се
използват около литерални (буквални) низове.
print "Hello, ...
Основи на синтаксиса
● Забележка: Променливи и специални знаци -
като знака за нов ред (n), могат да се
обграждат само с д...
Основи на синтаксиса
● Числата не се нуждаят от кавички
print 42;print 42;
Основи на синтаксиса
● Можете да използвате скоби за аргументите
на функциите, или пък да пропуснете – това е
въпрос на ли...
Вградени оператори и функции
● Perl върви с богат избор от вградени
функции.
● Пълен списък с функциите на:
http://perldoc...
Вградени оператори и функции
● Математически оператори
+ събиране
- изваждане
* умножение
/ деление
Вградени оператори и функции
● Сравнение на числа (Numeric comparison)
== равенство
!= неравенство
< по-малко
> по-голямо
...
Вградени оператори и функции
● Сравнение на низове (String comparison)
eq равенство
ne неравенство
lt по-малко
gt по-голям...
Вградени оператори и функции
● Булева логика
&& and (и)
|| or (или)
! not (не)
● and, or и not не са просто описания на оп...
Вградени оператори и функции
● Някои други оператори:
= присвояване
. конкатенация (съединяване на няколко
низа в един)
x ...
Вградени оператори и функции
● Много оператори могат да се комбинират със
знака =
$a += 1; # same as $a = $a + 1$a += 1; #...
Hello World
#!/usr/bin/perl#!/usr/bin/perl
use warnings;use warnings;
use strict;use strict;
use utf8;use utf8;
print 'Hi'...
Източници
● Perl CORE documentation
– perlhist, perlintro, perldata, perlhack, perlguts,
perlvar, perlcompile, etc.
● „Beg...
Въведение в Perl
Въпроси?
С любезното съдействие на http://chainsolutions.net/
Upcoming SlideShare
Loading in...5
×

Въведение в Perl

301

Published on

Това е превод на български от Теодора Берова на първият урок от поредицата уроци, които водих преди време за QA-отдела на голяма международна компания, по покана на Светлин Наков.
Искам да го споделя с всеки, който търси непреходни знания за Perl.
Обновяванията след 1ви юни 2014 и преводът са направени с подкрепата на Chain Solutions (http://chainsolutions.net/).
Таблица със съдържанието на курса може да бъде намерена на http://i-can.eu/ .
Изходният код на примерите и уроците в ODP формат се намират на адрес https://github.com/kberov/PerlProgrammingCourse/ .

Published in: Software
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
301
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Въведение в Perl

  1. 1. Курс по програмиране на Perl Въведение в PerlВъведение в Perl Автор: Красимир Беров, Превод: Теодора Берова I-can.eu С любезното съдействие на Chain Solutions
  2. 2. Съдържание 1. Кратка история 2. Основни понятия. Интерпретиран (скриптов) или компилиран? 3. Виртуална машина и платформена независимост 4. Защо Perl? 5. CPAN и PPM 6. Инсталиране под (Windows/Unix) 7. Основен синтаксис 8. Вградени оператори и функции 9. Hello World (Здравей Свят) 10.Източници
  3. 3. Кратка история ● 1986/7 – Perl е изобретен от Лари Уол в Лабораторията по реактивни двигатели в NASA. ● 1987-Dec-18 Perl 1 представя Perl пред света. ● 1988-Jun-05 Perl 2 въвежда пакета с регулярни изрази на Хенри Спенсър. ● 1989-Oct-18 Perl 3 вече обработва двоични данни. ● 1991-Mar-21 Perl 4 представя първата си книга – Camel book. ● 1994-Oct-17 Perl 5 въвежда всичко останало (ООП, нишки...), включително и възможността да се въвежда всичко останало. ● 2014-05-27 Издание на Perl 5.20 от Ricardo Signes.
  4. 4. Основни понятия ● P.E.R.L (Pathologically Eclectick Rubish Lister – патологично-еклектично средство за извеждане на безсмислици) или P.E.R.L (Practical Extraction and Report Language – практичен език за извличане и отчети) ● Езици за програмиране ● Интерпретирани и компилирани езици
  5. 5. Основни понятия ● Езици за програмиране ● C/C++ ● Java ● Tcl ● Perl ● PHP ● Ruby ● JavaScript
  6. 6. Основни понятия ● Интерпретиран или компилиран език е Perl?
  7. 7. Основни понятия ● Интерпретиран? – Един интерпретиран език се нуждае от програма, наречена интерпретатор, която да обработва изходния код всеки път, когато стартирате програмата. – Интерпретаторът превръща изходния код в машинен код, за да го разчете машината. – Изходният код е за хора. ● Повече информация: – perlhack/Принципи на работата на интерпретатора – perlguts/Компилираният код ● Интерпретирани езици: Perl, PHP, Python, Ruby...
  8. 8. Основни понятия ● Компилиран? – Компилираният език използва компилатор, който обработва кода еднократно. – След това, вие можете да пускате получения машинен код много пъти на много машини, без да е нужно да се компилира отново. ● Компилирани езици: C,C++, D, Delphy,.. ● Байтово компилирани езици: Java, Python, Perl (Parrot-Perl6) :)... ● Байтовият код също е независим от машината – толкова е преносим, колкото и самия изходен код (виж perlcompile, B::Bytecode).
  9. 9. Виртуална машина ● Виртуална машина == perl като програма/интерпретатор ● Работата на интерпретатора се дели на два основни етапа: – компилиране на кода до състояние удобно за вътрешна употреба от интерпретатора (байткод) – изпълнение на кода. ● Виртуалната машина на Perl 6 – Parrot, е по- скоро като Java и .NET
  10. 10. Виртуална машина ● Кратък преглед на етапите на работа на perl – Компилиране ● Стартиране ● Обработка на изходния/програмния код (синтактичен анализ) ● Компилация и оптимизация – Изпълнение ● Изпълняване/Работа ● Обработка на изключения
  11. 11. Платформена независимост ● Виртуалната машина на Perl ни освобождава от необходимостта да се съобразяваме с особеностите на Операционната Система (ОС) ● Високо ниво на независимост ● Един и същ изходен код върви под различни платформи: use File::Path;use File::Path; my $dest ='/some/path/in/main/drive'my $dest ='/some/path/in/main/drive' eval { mkpath($dest) };eval { mkpath($dest) }; if ($@) {if ($@) { print "Couldn't create $dest:$/$@$/"print "Couldn't create $dest:$/$@$/" . "... exiting.$/";. "... exiting.$/"; exit;exit; }}
  12. 12. Защо Perl? ● Лесен за изучаване – Научаването на малко Perl може да ви заведе по-далече, отколкото предполагате. – По-лесен е за хората да го пишат, отколкото за компютрите да го разбират. – Синтаксисът на езика много повече наподобява човешки език. open(FILE) or die $!;open(FILE) or die $!; die $! unless open(FILE);die $! unless open(FILE); die $! if not open(FILE);die $! if not open(FILE);
  13. 13. Защо Perl? ● Преносим – Perl е пренесен на почти всички съвременни операционни системи, като Windows, Mac OS X, Linux, Unix (където е създаден) и мнго други... ● Език от много високо ниво – Не ви кара да мислите за неясни неща, като разпределяне на паметта, процесор (CPU) и др.
  14. 14. Защо Perl? ● „Говори“ текста (във всякакво кодиране). ● „Мисли“ за файловете от гледна точка на редове и изречения (по подразбиране) или както сте му казали да го прави. ● Има вградени мощни регулярни изрази. if( $lines[$_] =~ /^--s*?[(w+)]/ ){if( $lines[$_] =~ /^--s*?[(w+)]/ ){ $key = $1;$key = $1; }} ВНИМАНИЕ!!! Не пишете мърляв код, само защото ви е по-лесно. В повечето случаи вашият код ще живее по-дълго, отколкото очаквате, и се получава грозно!!!
  15. 15. Защо Perl? ● И накрая, – Защото така искате – Защото вашият шеф иска така :)...
  16. 16. CPAN и PPM ● CPAN (Comprehensive Perl Archive Network) е най- големият източник на многократно използваем и стандартизиран perl-код. Използвайте програмата cpan, за да инсталирате, компилирате и обновявате модули, ако имате C компилатор. ● PPM (Perl Package Manager) е инструмент на ActiveState за инсталиране на прекомпилирани perl-модули. Това улеснява работата по намирането, инсталирането, обновяването и премахването на Perl пакети под Windows. Използвайте програмата ppm, която върви с ActivePerl.
  17. 17. Инсталиране (Windows/Unix) – Linux/Unix ● Няма нужда – вече го имате инсталиран. ● Използвайте perlbrew за да инсталирате ваш собствен Perl. ● Използвайте ваш собствен ActivePerl. – Windows ● Свалете си perl за вашата архитектура от: http://strawberryperl.com/ или от: http://www.activestate.com/activeperl/downloads ● Щракнете двукратно върху strawberry-perl-5.XX.X.X-XXbit.msi или ActivePerl-5.XX.X.XXXX-....msi 1.Next, next, mm.. next, yes, next.... :D
  18. 18. Основи на синтаксиса ● Един Perl скрипт или програма се състои от една или повече конструкции. ● Тези конструкции са записани в скрипта по разбираем и прост начин. ● Не е необходимо да съдържат функцията main() или нещо от тоя род.
  19. 19. Основи на синтаксиса ● Конструкциите в Perl завършват с точка и запетая (;) #this is a fully functional program#this is a fully functional program print "Hello, world";print "Hello, world";
  20. 20. Основи на синтаксиса ● Коментарите започват със символа диез (#) и важат до края на реда. #this is a fully functional program with comment#this is a fully functional program with comment print "Hello, world";print "Hello, world";
  21. 21. Основи на синтаксиса ● Паузите са без значение... printprint "Hello, world""Hello, world" ;;
  22. 22. Основи на синтаксиса ● ...освен когато са вътре в низ с кавички (“...”) # this would print with a line-break in the middle# this would print with a line-break in the middle print "Helloprint "Hello world";world";
  23. 23. Основи на синтаксиса ● Двойни или единични кавички могат да се използват около литерални (буквални) низове. print "Hello, world";print "Hello, world"; print 'Hello, world';print 'Hello, world';
  24. 24. Основи на синтаксиса ● Забележка: Променливи и специални знаци - като знака за нов ред (n), могат да се обграждат само с двойни кавички print "Hello, $namen"; # works fineprint "Hello, $namen"; # works fine print 'Hello, $namen'; # prints $namen literallyprint 'Hello, $namen'; # prints $namen literally
  25. 25. Основи на синтаксиса ● Числата не се нуждаят от кавички print 42;print 42;
  26. 26. Основи на синтаксиса ● Можете да използвате скоби за аргументите на функциите, или пък да пропуснете – това е въпрос на личен стил. ● Изискват се само когато може да възникнат проблеми с приоритетите (кой израз се изпълнява по-напред). print("Hello, worldn");print("Hello, worldn"); print "Hello, worldn";print "Hello, worldn";
  27. 27. Вградени оператори и функции ● Perl върви с богат избор от вградени функции. ● Пълен списък с функциите на: http://perldoc.perl.org/perlfunc.html ● Можете да прочетете за всяка отделна функция и като въведете на командния ред следното: perldoc -f functionname. ● Пълната документация на операторите: http://perldoc.perl.org/perlop.html ● Ето някои от най-използваните.
  28. 28. Вградени оператори и функции ● Математически оператори + събиране - изваждане * умножение / деление
  29. 29. Вградени оператори и функции ● Сравнение на числа (Numeric comparison) == равенство != неравенство < по-малко > по-голямо <= по-малко или равно >= по-голямо или равно
  30. 30. Вградени оператори и функции ● Сравнение на низове (String comparison) eq равенство ne неравенство lt по-малко gt по-голямо le по-малко или равно ge по-голямо или равно ● Защо има отделни сравнения за числа и за низове? – Perl няма специални типове променливи. – perl трябва да знае как ще сортира – по числов или по азбучен ред (по-точно – според кодовата таблица).
  31. 31. Вградени оператори и функции ● Булева логика && and (и) || or (или) ! not (не) ● and, or и not не са просто описания на операторите Те са: – операторите сами по себе си – по-читаеми и ясни от операторите в C-стил – с по-нисък приоритет от && и „приятели“ ● Виж perlop
  32. 32. Вградени оператори и функции ● Някои други оператори: = присвояване . конкатенация (съединяване на няколко низа в един) x оператор за повторение (умножение) на низ .. оператор за поредици (създава списък от числа)
  33. 33. Вградени оператори и функции ● Много оператори могат да се комбинират със знака = $a += 1; # same as $a = $a + 1$a += 1; # same as $a = $a + 1 $a -= 1; # same as $a = $a - 1$a -= 1; # same as $a = $a - 1 $a .= "n"; # same as $a = $a . "n";$a .= "n"; # same as $a = $a . "n";
  34. 34. Hello World #!/usr/bin/perl#!/usr/bin/perl use warnings;use warnings; use strict;use strict; use utf8;use utf8; print 'Hi'.$/;print 'Hi'.$/; Т.нар. Shebang-ред. Незадължителен под Windows Прагма за контролиране на незадължителни предупреждения Прагма за ограничаване на опасни конструкции Прагма за включване/изключване поддръжката на на UTF-8 в изходния код (Обичате уникод, нали така?). Отпечатва низ или списък от низове на екрана. Буквален низ (скаларна стойност). Разделителят за входен запис – нов ред по подразбиране. Променя идеята на Perl за това какво е ред. Вижте това знание приложено в практиката: http://git.io/1JIGsA
  35. 35. Източници ● Perl CORE documentation – perlhist, perlintro, perldata, perlhack, perlguts, perlvar, perlcompile, etc. ● „Beginning Perl“ by Simon Cosens with Peter Wainwright (Wrox Press Ltd. 2000) http://www.perl.org/books/beginning-perl/ ● Modern Perl by chromatic http://www.onyxneon.com/books/modern_perl/ ● See also: books.perl.org
  36. 36. Въведение в Perl Въпроси? С любезното съдействие на http://chainsolutions.net/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×