Въведение в Perl
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Въведение в Perl

on

  • 251 views

Това е превод на български от Теодора Берова на първият урок от поредицата уроци, които водих преди време за ...

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

Statistics

Views

Total Views
251
Views on SlideShare
249
Embed Views
2

Actions

Likes
0
Downloads
0
Comments
1

1 Embed 2

https://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Въведение в Perl Presentation Transcript

  • 1. Курс по програмиране на Perl Въведение в PerlВъведение в Perl Автор: Красимир Беров, Превод: Теодора Берова I-can.eu С любезното съдействие на Chain Solutions
  • 2. Съдържание 1. Кратка история 2. Основни понятия. Интерпретиран (скриптов) или компилиран? 3. Виртуална машина и платформена независимост 4. Защо Perl? 5. CPAN и PPM 6. Инсталиране под (Windows/Unix) 7. Основен синтаксис 8. Вградени оператори и функции 9. Hello World (Здравей Свят) 10.Източници
  • 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. Основни понятия ● P.E.R.L (Pathologically Eclectick Rubish Lister – патологично-еклектично средство за извеждане на безсмислици) или P.E.R.L (Practical Extraction and Report Language – практичен език за извличане и отчети) ● Езици за програмиране ● Интерпретирани и компилирани езици
  • 5. Основни понятия ● Езици за програмиране ● C/C++ ● Java ● Tcl ● Perl ● PHP ● Ruby ● JavaScript
  • 6. Основни понятия ● Интерпретиран или компилиран език е Perl?
  • 7. Основни понятия ● Интерпретиран? – Един интерпретиран език се нуждае от програма, наречена интерпретатор, която да обработва изходния код всеки път, когато стартирате програмата. – Интерпретаторът превръща изходния код в машинен код, за да го разчете машината. – Изходният код е за хора. ● Повече информация: – perlhack/Принципи на работата на интерпретатора – perlguts/Компилираният код ● Интерпретирани езици: Perl, PHP, Python, Ruby...
  • 8. Основни понятия ● Компилиран? – Компилираният език използва компилатор, който обработва кода еднократно. – След това, вие можете да пускате получения машинен код много пъти на много машини, без да е нужно да се компилира отново. ● Компилирани езици: C,C++, D, Delphy,.. ● Байтово компилирани езици: Java, Python, Perl (Parrot-Perl6) :)... ● Байтовият код също е независим от машината – толкова е преносим, колкото и самия изходен код (виж perlcompile, B::Bytecode).
  • 9. Виртуална машина ● Виртуална машина == perl като програма/интерпретатор ● Работата на интерпретатора се дели на два основни етапа: – компилиране на кода до състояние удобно за вътрешна употреба от интерпретатора (байткод) – изпълнение на кода. ● Виртуалната машина на Perl 6 – Parrot, е по- скоро като Java и .NET
  • 10. Виртуална машина ● Кратък преглед на етапите на работа на perl – Компилиране ● Стартиране ● Обработка на изходния/програмния код (синтактичен анализ) ● Компилация и оптимизация – Изпълнение ● Изпълняване/Работа ● Обработка на изключения
  • 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. Защо 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. Защо Perl? ● Преносим – Perl е пренесен на почти всички съвременни операционни системи, като Windows, Mac OS X, Linux, Unix (където е създаден) и мнго други... ● Език от много високо ниво – Не ви кара да мислите за неясни неща, като разпределяне на паметта, процесор (CPU) и др.
  • 14. Защо Perl? ● „Говори“ текста (във всякакво кодиране). ● „Мисли“ за файловете от гледна точка на редове и изречения (по подразбиране) или както сте му казали да го прави. ● Има вградени мощни регулярни изрази. if( $lines[$_] =~ /^--s*?[(w+)]/ ){if( $lines[$_] =~ /^--s*?[(w+)]/ ){ $key = $1;$key = $1; }} ВНИМАНИЕ!!! Не пишете мърляв код, само защото ви е по-лесно. В повечето случаи вашият код ще живее по-дълго, отколкото очаквате, и се получава грозно!!!
  • 15. Защо Perl? ● И накрая, – Защото така искате – Защото вашият шеф иска така :)...
  • 16. CPAN и PPM ● CPAN (Comprehensive Perl Archive Network) е най- големият източник на многократно използваем и стандартизиран perl-код. Използвайте програмата cpan, за да инсталирате, компилирате и обновявате модули, ако имате C компилатор. ● PPM (Perl Package Manager) е инструмент на ActiveState за инсталиране на прекомпилирани perl-модули. Това улеснява работата по намирането, инсталирането, обновяването и премахването на Perl пакети под Windows. Използвайте програмата ppm, която върви с ActivePerl.
  • 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. Основи на синтаксиса ● Един Perl скрипт или програма се състои от една или повече конструкции. ● Тези конструкции са записани в скрипта по разбираем и прост начин. ● Не е необходимо да съдържат функцията main() или нещо от тоя род.
  • 19. Основи на синтаксиса ● Конструкциите в Perl завършват с точка и запетая (;) #this is a fully functional program#this is a fully functional program print "Hello, world";print "Hello, world";
  • 20. Основи на синтаксиса ● Коментарите започват със символа диез (#) и важат до края на реда. #this is a fully functional program with comment#this is a fully functional program with comment print "Hello, world";print "Hello, world";
  • 21. Основи на синтаксиса ● Паузите са без значение... printprint "Hello, world""Hello, world" ;;
  • 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. Основи на синтаксиса ● Двойни или единични кавички могат да се използват около литерални (буквални) низове. print "Hello, world";print "Hello, world"; print 'Hello, world';print 'Hello, world';
  • 24. Основи на синтаксиса ● Забележка: Променливи и специални знаци - като знака за нов ред (n), могат да се обграждат само с двойни кавички print "Hello, $namen"; # works fineprint "Hello, $namen"; # works fine print 'Hello, $namen'; # prints $namen literallyprint 'Hello, $namen'; # prints $namen literally
  • 25. Основи на синтаксиса ● Числата не се нуждаят от кавички print 42;print 42;
  • 26. Основи на синтаксиса ● Можете да използвате скоби за аргументите на функциите, или пък да пропуснете – това е въпрос на личен стил. ● Изискват се само когато може да възникнат проблеми с приоритетите (кой израз се изпълнява по-напред). print("Hello, worldn");print("Hello, worldn"); print "Hello, worldn";print "Hello, worldn";
  • 27. Вградени оператори и функции ● Perl върви с богат избор от вградени функции. ● Пълен списък с функциите на: http://perldoc.perl.org/perlfunc.html ● Можете да прочетете за всяка отделна функция и като въведете на командния ред следното: perldoc -f functionname. ● Пълната документация на операторите: http://perldoc.perl.org/perlop.html ● Ето някои от най-използваните.
  • 28. Вградени оператори и функции ● Математически оператори + събиране - изваждане * умножение / деление
  • 29. Вградени оператори и функции ● Сравнение на числа (Numeric comparison) == равенство != неравенство < по-малко > по-голямо <= по-малко или равно >= по-голямо или равно
  • 30. Вградени оператори и функции ● Сравнение на низове (String comparison) eq равенство ne неравенство lt по-малко gt по-голямо le по-малко или равно ge по-голямо или равно ● Защо има отделни сравнения за числа и за низове? – Perl няма специални типове променливи. – perl трябва да знае как ще сортира – по числов или по азбучен ред (по-точно – според кодовата таблица).
  • 31. Вградени оператори и функции ● Булева логика && and (и) || or (или) ! not (не) ● and, or и not не са просто описания на операторите Те са: – операторите сами по себе си – по-читаеми и ясни от операторите в C-стил – с по-нисък приоритет от && и „приятели“ ● Виж perlop
  • 32. Вградени оператори и функции ● Някои други оператори: = присвояване . конкатенация (съединяване на няколко низа в един) x оператор за повторение (умножение) на низ .. оператор за поредици (създава списък от числа)
  • 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. 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. Източници ● 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. Въведение в Perl Въпроси? С любезното съдействие на http://chainsolutions.net/