Това е превод на български от Теодора Берова на първият урок от поредицата уроци, които водих преди време за QA-отдела на голяма международна компания, по покана на Светлин Наков.
Искам да го споделя с всеки, който търси непреходни знания за Perl.
Обновяванията след 1ви юни 2014 и преводът са направени с подкрепата на Chain Solutions (http://chainsolutions.net/).
Таблица със съдържанието на курса може да бъде намерена на http://i-can.eu/ .
Изходният код на примерите и уроците в ODP формат се намират на адрес https://github.com/kberov/PerlProgrammingCourse/ .
Скаларни типове данниKrasimir Berov (Красимир Беров)Това е превод на български от Теодора Берова на втория урок от поредицата уроци, които водих преди време за QA-отдела на голяма международна компания, по покана на Светлин Наков.
Искам да го споделя с всеки, който търси непреходни знания по Perl.
Обновяванията след 1ви юни 2014 и преводът са направени с подкрепата на Chain Solutions (http://chainsolutions.net/).
Таблица със съдържанието на курса може да бъде намерена на http://i-can.eu/ .
Изходният код на примерите и уроците в ODP формат се намират на адрес https://github.com/kberov/PerlProgrammingCourse/ .
Списъци и масивиKrasimir Berov (Красимир Беров)Това е превод на български от Теодора Берова на третия урок от поредицата уроци, които водих преди време за QA-отдела на голяма международна компания, по покана на Светлин Наков.
Искам да го споделя с всеки, който търси непреходни знания по Perl.
Обновяванията след 1ви юни 2014 и преводът са направени с подкрепата на Chain Solutions (http://chainsolutions.net/).
Таблица със съдържанието на курса може да бъде намерена на http://i-can.eu/ .
Изходният код на примерите и уроците в ODP формат се намират на адрес https://github.com/kberov/PerlProgrammingCourse/ .
ХешовеKrasimir Berov (Красимир Беров)Това е превод на български от Теодора Берова на четвъртия урок от поредицата уроци, които водих преди време за QA-отдела на голяма международна компания, по покана на Светлин Наков.
Искам да го споделя с всеки, който търси непреходни знания по Perl.
Таблица със съдържанието на курса може да бъде намерена на http://i-can.eu/ .
Изходният код на примерите и уроците в ODP формат се намират на адрес https://github.com/kberov/PerlProgrammingCourse/ .
Училищен курс по програмиране на C# (2013/2014), занятие №10DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №10: Свойства. Индексатори. Статични членове
Училищен курс по програмиране на C# (2013/2014), занятие №11DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №11: Полиморфизъм (част 1): Презаписване на членове. Презаписване на оператори. Предефиниране на членове
Училищен курс по програмиране на C# (2013/2014), занятие №13DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №13: Обработка на грешки. Анотации и отражение
Училищен курс по програмиране на C# (2013/2014), занятие №14DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №14: Делегати. Събития. Ламбда функции
Училищен курс по програмиране на C# (2013/2014), занятие №2DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №2: Конзолен вход и изход. Условни преходи. Цикли
Училищен курс по програмиране на C# (2013/2014), занятие №8DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №8: Методи. Конструтори и деструктори.
Училищен курс по програмиране на C# (2013/2014), занятие №4DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №4: Функции и методи. Често използвани методи
Училищен курс по програмиране на C# (2013/2014), занятие №12DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №12: Полиморфизъм (част 2): Абстракция. Интерфейси. Шаблони. Вградени колекции
Училищен курс по програмиране на C# (2013/2014), занятие №7DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №7: Обектно-ориентирано програмиране. Класове. Обекти. Структури. Полета
Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#DAVID AcademyЗанятие №1 на курса по програмиране на C# 2013 провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Въведение в компютърното програмиране и C#
Курс по програмиране на C# 2013 - 2. Конзолен вход и изход. Условни преходи. ...DAVID AcademyЗанятие №2 на курса по програмиране на C# 2013 провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Конзолен вход и изход
- Условни преходи
- Масиви
Курс по информационни технологии (2013) - 1. Desktop приложения. Windows Form...DAVID AcademyЗанятие №1 на курса по информационни технологии (2013) провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Desktop приложения
- Windows Forms
- Windows Presentation Foundation
Училищен курс по програмиране на C# (2013/2014), занятие №9DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №9: Наследяване. Видимост и капсулиране
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...DAVID AcademyЗанятие №8 на курса по програмиране на C# 2013 провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Полиморфизъм
- Абстракция
- Шаблони
- Вградени колекции
Scalar data typesKrasimir Berov (Красимир Беров)This is the second set of slightly updated slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
Sample ch10 corr-maurer_netty_december03Milena StefanovaThe document discusses codecs in Netty, which are encoders and decoders that transform data between different formats. It covers Netty's decoder classes for decoding bytes to messages and one message type to another. Specific decoder classes covered include ByteToMessageDecoder, ReplayingDecoder, and MessageToMessageDecoder. Examples are provided to illustrate how to implement decoders using these classes to decode byte streams to integers or convert integers to strings.
MS Excel - Управленски решенияTrainSoftОвладейте хаоса от цифри! Работна среща - представяне възможностите на MS Excel за анализ и прогнозиране с цел вземане на решения.
SESEC SAT инструмент за самооценкаDITF DenkendorfThis is a training module developed in the European project SESEC. More information and the full training can be found here: www.sesec-training.eu
The SESEC project is designed to address the energy efficiency needs of the EU clothing industry. The Consortium relies on outstanding competences of the partners, spread over 6 countries (Bulgaria, Romania, Portugal, Italy, Germany, Belgium) to provide the missing energy efficiency benchmarks and ready-to-use solutions for the large number of SMEs as well as larger companies. The SESEC project has 4 major objectives:
• To develop, test and offer an Energy Efficiency tool for clothing production, made up of guidelines and web-based applications, suitable for SMEs and large companies
• To transfer the project results to the sector, EURATEX members and interested companies
• To offer training and support to companies to implement energy-saving measures considering cost-effectiveness
• To improve opportunities for energy-efficiency for the whole European clothing industry
Училищен курс по програмиране на C# (2013/2014), занятие №2DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №2: Конзолен вход и изход. Условни преходи. Цикли
Училищен курс по програмиране на C# (2013/2014), занятие №8DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №8: Методи. Конструтори и деструктори.
Училищен курс по програмиране на C# (2013/2014), занятие №4DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №4: Функции и методи. Често използвани методи
Училищен курс по програмиране на C# (2013/2014), занятие №12DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №12: Полиморфизъм (част 2): Абстракция. Интерфейси. Шаблони. Вградени колекции
Училищен курс по програмиране на C# (2013/2014), занятие №7DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №7: Обектно-ориентирано програмиране. Класове. Обекти. Структури. Полета
Курс по програмиране на C# 2013 - 1. Въведение в компютърното програмиране и C#DAVID AcademyЗанятие №1 на курса по програмиране на C# 2013 провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Въведение в компютърното програмиране и C#
Курс по програмиране на C# 2013 - 2. Конзолен вход и изход. Условни преходи. ...DAVID AcademyЗанятие №2 на курса по програмиране на C# 2013 провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Конзолен вход и изход
- Условни преходи
- Масиви
Курс по информационни технологии (2013) - 1. Desktop приложения. Windows Form...DAVID AcademyЗанятие №1 на курса по информационни технологии (2013) провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Desktop приложения
- Windows Forms
- Windows Presentation Foundation
Училищен курс по програмиране на C# (2013/2014), занятие №9DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №9: Наследяване. Видимост и капсулиране
Курс по програмиране на C# 2013 - 8. Полиморфизъм. Абстракция. Шаблони. Вград...DAVID AcademyЗанятие №8 на курса по програмиране на C# 2013 провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Полиморфизъм
- Абстракция
- Шаблони
- Вградени колекции
Scalar data typesKrasimir Berov (Красимир Беров)This is the second set of slightly updated slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
Sample ch10 corr-maurer_netty_december03Milena StefanovaThe document discusses codecs in Netty, which are encoders and decoders that transform data between different formats. It covers Netty's decoder classes for decoding bytes to messages and one message type to another. Specific decoder classes covered include ByteToMessageDecoder, ReplayingDecoder, and MessageToMessageDecoder. Examples are provided to illustrate how to implement decoders using these classes to decode byte streams to integers or convert integers to strings.
MS Excel - Управленски решенияTrainSoftОвладейте хаоса от цифри! Работна среща - представяне възможностите на MS Excel за анализ и прогнозиране с цел вземане на решения.
SESEC SAT инструмент за самооценкаDITF DenkendorfThis is a training module developed in the European project SESEC. More information and the full training can be found here: www.sesec-training.eu
The SESEC project is designed to address the energy efficiency needs of the EU clothing industry. The Consortium relies on outstanding competences of the partners, spread over 6 countries (Bulgaria, Romania, Portugal, Italy, Germany, Belgium) to provide the missing energy efficiency benchmarks and ready-to-use solutions for the large number of SMEs as well as larger companies. The SESEC project has 4 major objectives:
• To develop, test and offer an Energy Efficiency tool for clothing production, made up of guidelines and web-based applications, suitable for SMEs and large companies
• To transfer the project results to the sector, EURATEX members and interested companies
• To offer training and support to companies to implement energy-saving measures considering cost-effectiveness
• To improve opportunities for energy-efficiency for the whole European clothing industry
5S basic training pptbeskidek5S basic training ppt
http://smartmanagement.info/download-category/5s-forms/
5S represents 5 disciplines for maintaining a visual workplace (visual controls and information systems).
These are foundational to Kaizen (continuous improvement) and a manufacturing strategy based "Lean Manufacturing" (waste removing) concepts.
5S is one of the activities that will help ensure our company’s survival.
Демо урок по програмиране със Светлин НаковSvetlin NakovВ този демо урок д-р Светлин Наков разказва за програмирането и дава възможност на присъстващите да напишат няколко реда код, да напишат първите си програмки с Python и други езици и показва, че писането на код е лесно и забавно. За запалилите се по програмирането лекторът разкрива възможности да продължат да се занимават в СофтУни или по свой собствен път.
Курс по програмиране на C# 2013 - 7. Свойства. Индексатори. Наследяване. Изкл...DAVID AcademyЗанятие №7 на курса по програмиране на C# 2013 провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Свойства
- Индексатори
- Наследяване
- Изключения
Училищен курс по програмиране на C# (2013/2014), занятие №1DAVID AcademyУчилищен курс по програмиране на C# (2013/2014)
Занятие №1: Компютърно програмиране. Основи на езика C#
Програмиране на малки микропроцесорни системиNeven BoyanovРазгледани са няколко решения на прости практически проблеми с помощта на 3 различни платформи – обикновен микро-контролер Atmel ATtiny, система Arduino и система Raspberry Pi. Ще бъде направен сравнителен анализ между тях на базата на възможности, цена, производителност и др. Ще бъдат разгледани основните езици (ASM, C/C++, Processing и т. н.) и средства за разработка за тези платформи както и възможността за използването им при изучаване на софтуерните и хардуерните технологии.
Курс по програмиране на C# 2013 - 6. Обектно-ориентирано програмиране. Класов...DAVID AcademyЗанятие №6 на курса по програмиране на C# 2013 провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- Обектно-ориентирано програмиране
- Класове и обекти
- Членове
- Видимост и капсулиране
System Programming and AdministrationKrasimir Berov (Красимир Беров)This is the fourteenth (and last for now) set of slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
Network programmingKrasimir Berov (Красимир Беров)This is the thirteenth set of slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
Processes and threadsKrasimir Berov (Красимир Беров)This document discusses processes and threads in Perl programming. It defines a process as an instance of a running program, while a thread is a flow of control through a program with a single execution point. Multiple threads can run within a single process and share resources, while processes run independently. The document compares processes and threads, and covers creating and managing threads, sharing data between threads, synchronization, and inter-process communication techniques in Perl like fork, pipe, and open.
Working with databasesKrasimir Berov (Красимир Беров)This is the eleventh set of slightly updated slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
Working with text, Regular expressionsKrasimir Berov (Красимир Беров)This is the ninth set of slightly updated slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
SubroutinesKrasimir Berov (Красимир Беров)This is the seventh set of slightly updated slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
IO Streams, Files and DirectoriesKrasimir Berov (Красимир Беров)This is the sixth set of slightly updated slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
SyntaxKrasimir Berov (Красимир Беров)This document provides a 3-sentence summary of a Perl programming course document on syntax:
The document covers Perl programming syntax including declarations, statements, comments, operators, loops, and conditionals. Sections include declarations of variables and subroutines, simple and compound statements, comments and documentation, conditional statements, loops and loop control, logical and mathematical operators, and operator precedence. The goal of the course is to teach the essential Perl syntax for writing Perl programs.
HashesKrasimir Berov (Красимир Беров)This document provides an overview of hashes in Perl programming. It defines a hash as a set of key-value pairs where keys are not pre-declared and can be created during assignment. Functions for working with hash elements include exists(), defined(), and delete(). Other hash functions include each() to iterate over elements, keys() to return a list of all keys, and values() to return a list of all values.
Lists and arraysKrasimir Berov (Красимир Беров)This is the third set of slightly updated slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
Introduction to PerlKrasimir Berov (Красимир Беров)This is the first set of slightly updated slides from a Perl programming course that I held some years ago for the QA team of a big international company.
I want to share it with everyone looking for intransitive Perl-knowledge.
The updates after 1st of June 2014 are made with the kind support of Chain Solutions (http://chainsolutions.net/)
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
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
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
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