Вивчення будь-якої мови програмування починається з його синтаксису, одну з невід'ємних частин якого становить опис структури програми, що визначає склад і порядок розташування різноманітних конструкцій в тілі програми. Ми не будемо відступати від традицій, що склалися і пояснимо необхідні поняття на прикладі простої програми Perl, яка отримує інформацію від користувача і у відповідь друкує на екрані монітора вітання.
2.1. проста програма
Мова Perl - досить проста мова програмування, семантика ключових слів якого відповідає їх значенню в англійській мові, тому навіть початківець його вивчення програміст, у всякому разі, так стверджують його розробники, без особливих зусиль може розібратися в простій програмі Perl. Ну, що ж, може бути так воно і є, але, як то кажуть, "краще один раз побачити, ніж сто разів почути". Отже, в прикладі 2.1 наведено текст програми, яка друкує на екрані монітора запрошення ввести ім'я користувача, а у відповідь просто вітає його.
Приклад 2.1. Проста програма-привітання
03 print "Ваше ім'я? \ N"; # Запрошення ввести ім'я.
04 $ name =
= NAME_FORMAT; # Призначення формату виведення.
07 write; # Висновок вітання.
= NAME_FORMAT_BOTTOM; # Висновок нижньої розділової риси.
12 format NAME_FORMAT = # Початок опису формату.
13 Привіт, @ »» »» »»! # Рядок виведення.
14 $ name # Змінна, значення якої
# Підставляється в рядок виводу.
15. # Завершення опису формату.
17 format NAME_FORMAT_TOP = # Тема формату NAME_FORMAT.
19 Повідомлення Peri-програми
23 format NАМЕ_FОRМАТ_TОP = # Формат виведення нижньої розділової риси
Ця програма не зовсім типова для Peri-програми - в ній відсутні оператори розгалуження, циклу, визначення власних підпрограм і їх виклик і багато іншого, але вона все ж відображає призначення мови Perl як мови генерування звітів, здійснюючи висновок вітання відповідно до технології створення звітів шляхом визначення формату виводу, який в більшості сучасних мов або відсутній взагалі, або практично не використовується програмістами.
Зазвичай розширення файлу (до трьох символів) використовується для ідентифікації файлів певної групи: виконувані файли програм (ЕХЕ), файли текстового процесора Word (DOC) і т. Д. Для сценаріїв Perl прийнято використовувати двохбуквене розширення pl.
Для виконання програми прикладу 2.1, збереженої у файлі programl.pl, в будь-якій операційній системі, що має командний рядок, досить набрати в ній команду:
В результаті виконання програми на екрані монітора з'явиться запрошення ввести ім'я і після введення імені відобразиться вітання Perl-програми. Дамп екрана після виконання нашої програми можна побачити в прикладі 2.2, де ми напівжирним шрифтом виділили введення користувача.
Приклад 2.2. Висновок програми прикладу 2.1
chmod + x programl.pl
і запустити на виконання з командного рядка:
У цьому випадку перший рядок програми зіставляє файлу додаток, яке повинно бути завантажено для його обробки. Більш того, в ній можна визначити при необхідності параметри, або ключі, що визначають режим роботи програми, в нашому випадку інтерпретатора perl. Можна задати відображення попереджувальних повідомлень або завантаження відладчика в разі виявлення серйозної помилки за допомогою наступного рядка:
(Про режимах роботи інтерпретатора perl і відповідних ключах див. Розділ 14.)
Для цього слід виконати команду Параметри меню Вид програми Провідник, в діалоговому вікні Параметри на вкладці Типи файлів в списку Зареєстровані типи виділити Perl File і натисканням кнопки Змінити відобразити діалогове вікно Зміна властивостей типу файлів. У цьому вікні в списку Дії вибрати Open і натиснути кнопку Змінити. У діалоговому вікні Зміна дії для типу: Perl File в поле Додаток, що виконує дію: ввести зазначену рядок, задавши в ключі / с повний шлях до папки, де розташований двійковий виконуваний файл інтерпретатора Active Perl, який називається perl.exe.
При роботі з інтерпретатором Active Perl немає необхідності ставити перший рядок, проте якщо необхідно встановити режими роботи інтерпретатора, то її слід поставити, причому не обов'язково вказувати повний шлях розташування інтерпретатора, досить тільки його ім'я perl і необхідні ключі.
Всі приклади програм в цій книзі перевірені в інтерпретаторі Active Perl 520 для Windows 95 / NT і вбудованому інтерпретаторі Perl системи Linux RedHat 6.1, відповідають поточній стабільної версії Perl 5.005.
У рядку 3 функція print посилає на системне пристрій виведення (зазвичай це монітор комп'ютера) вміст списку своїх параметрів, при необхідності перетворюючи його в символьне уявлення. У нашій програмі при виконанні цього оператора на екрані монітора відобразиться вміст рядка, переданої функції print як параметр. Для тих, хто не знайомий з мовою С, послідовність символів "\ n" може здатися дивною, тим більше, що в дампі екрану (див. Приклад 2.2) вона навіть не відображається. Це одна з так званих керуючих або ESC-послідовностей, які призначені для подання не відображаються символів - в. даному випадку символу переходу на новий рядок.
Оператор рядки 4 очікує введення зі стандартного пристрою введення (зазвичай це клавіатура) і привласнює змінної $ name введене користувачем ім'я. Забігаючи наперед, скажемо, що при роботі з файлами в Perl визначаються дескриптори файлів, що представляють собою звичайні ідентифікатори, використовувані в програмі для посилання на файли, з якими вони асоційовані. У мові є кілька визначених дескрипторів файлів, одним з яких є STDIN. асоційований зі стандартним пристроєм введення. Операція про виконує введення з файлу, заданого своїм дескриптором.
Оператор рядки 6 призначає системної змінної $
У форматі NAME_FORMAT визначена одна рядок виведення з одним поледержателем, який резервує поле довжиною в 12 символів і визначає, що виведене значення має бути притиснуто вправо (символ ">"). Це означає, що якщо значення асоційованої з цим поледержателем змінної $ name буде менше 12 символів, то в цьому полі при виведенні вони будуть вирівняні по правому краю. Якщо виведене значення перетвориться в рядок довжиною більше 12 символів, вона обрізається по правому краю, т. Е. Відображаються перші 12 символів, вважаючи зліва направо.
Якщо для формату визначений формат з таким же ім'ям і суфіксом _ТОР, то цей формат визначає вид заголовка сторінки, який буде отобра тулитися щоразу при виведенні нової сторінки з використанням основного формату. Для формату NAME_FORMAT визначено формат заголовка в рядках 17-19.
Завершується висновок вітання друкуванням розділової риси функцією write рядка 10 з використанням формату NAME_FORMAT_BOTTOM. Зверніть увагу, що для використання нового формату виведення нам довелося змінити значення системної змінної $
Це слід робити щоразу, коли необхідно організувати висновок за допомогою нового формату.
Отже, ми розробили і виконали нашу першу програму на мові Perl. Тепер прийшов час звернутися до синтаксису мови і розповісти в найзагальніших рисах, з чого складається програма на мові Perl, т. Е. Описати структуру програми.
Можна оголосити підпрограму з допомогою оператора sub. не визначаючи що її, т. е. не ставлячи оператори, що реалізують її функцію. Після такого ого лення підпрограми її ім'я можна використовувати як операцію, що діє на список, який визначається переданими їй параметрами.
2.3. Вирази і оператори
Оператор - це частина тексту програми, яку інтерпретатор перетворює в закінчену інструкцію, виконувану комп'ютером. З точки зору синтаксису мови (способів складання правильних конструкцій, які розпізнаються інтерпретатором) оператор складається з лексем - мінімальних одиниць мови, які мають певний сенс для інтерпретатора. Під мінімальною одиницею мови розуміється така його одиниця, яка не може бути представлена більш дрібними одиницями при подальшому її синтаксичному розборі. У мові Perl лексемами можуть бути ідентифікатори, літерали, знаки операцій і роздільник.
Ми дамо визначення всім допустимим в мові лексем. Хоча їх семантика (сенс) може виявитися для початківців програмістів і не зовсім ясна, але ми повернемося до деяких визначень в наступних розділах, де уточнимо їх і синтаксис, і семантику в зв'язку з вводяться елементами мови. Справа в тому, що, на жаль, неможливо описати мову без посилань вперед.
Ідентифікатор - це послідовність букв, цифр і символу підкреслення "_", що починається з букви або підкреслення і використовувана для іменування змінних, функцій, підпрограм, дескрипторів файлів, форматів і міток в програмі. Програміст може використовувати будь-які пра ні ідентифікатори для іменування перерахованих об'єктів програми, якщо тільки вони не збігаються з ключовими словами мови - зумовленими ідентифікаторами, які мають спеціальне значення для інтерпретатора мови Perl, наприклад if, unless, goto і т. Д. Приклади правильних і неправильних ідентифікаторів представлені в прикладі 2.3.
Приклад 2.3. Правильні і неправильні ідентифікатори
1 myName # Починається з цифри.
-myName # Починається ні з символу букви або підкреслення.
my% Name # Використовується неприпустимий для ідентифікаторів символ