Мова Perl (Practical Extraction and Report Language) - це мова програмування. сильними сторонами якого вважаються його багаті можливості для роботи з текстом, в тому числі реалізовані за допомогою регулярних виразів. Також мова відома тим, що має величезну колекцію додаткових модулів CPAN.
Щоб запустити програму на мові Perl на виконання, її компіляція не потрібно, вона цілком може виконуватися під керуванням інтерпретатора. Щоб файл з вихідним текстом Perl можна було запускати на виконання, треба щоб перша його рядок виглядала так:
Основними типами даних в мові є: скаляри, масиви (скалярні), хеш-таблиці (асоціативні масиви), функції, файлові дескриптори і константи.
Змінні різних типів відрізняються знаком, який стоїть перед ім'ям змінної:
$ A - скаляр або покажчик
F - дескриптор введення-виведення або константа
Скалярні змінні використовуються для зберігання одиночних значень. Вони можуть містити числа, рядки і посилання на інші об'єкти. Перед ім'ям скалярної змінної необхідно ставити знак долара '$'. Тип скалярної змінної не фіксований і визначається динамічно в залежності від контексту.
Скалярний масив є впорядкованим списком скалярів. Кожен елемент масиву має порядковий номер (індекс), за допомогою якого до нього можна отримати доступ. Нумерація елементів починається з нуля.
Перед ім'ям змінної типу скалярниймассів вказується знак @. а для доступу до певного елементу масиву необхідно ставити знак $. так як певний елемент масиву є скаляром:
Хеш-таблиця являє собою асоціативний масив. дозволяє асоціювати рядок (ключ) з скаляром (значення). Рядок при цьому називається ключем. а скаляр в хеш-таблиці - значенням. Перед ім'ям змінної-списку необхідно ставити знак відсотка%. а для доступу до певного елементу масиву ставлять знак $.
Фактично хеш-таблиця являє собою масив. де в непарних позиціях знаходяться ключі. а на парних - значення.
Використання асоціативних масивів нагадує використання масивів скалярних значень, проте індексація проводиться не цілими числами, а ключовими словами. Крім того, індекси полягають не в квадратні, а в фігурні дужки.
Так, наприклад, для того щоб привласнити значення трьох елементів масиву .ict з індексами first. second і third. можна скористатися одним з двох способів, зазначених нижче.
Крім $ _ в Perl є й інші визначені змінні:
Подібно визначеним скалярним змінним, в Perl існують масиви, що мають спеціальне значення. Найбільш важливий з них - асоціативний масив% ENV. що містить поточні значення змінних оточення. Щоб отримати значення змінної оточення, треба звернутися до елементу даного масиву, вказавши в якості індексу ім'я змінної оточення. Так, наведене нижче вираз записує в скалярную змінну $ path_string значення змінної оточення PATH.
Одна з перших рядків CGI -сценарія на Perl, може виглядати так
Оскільки символ С міститься в абревіатурі CGI. тому в шаблоні пошуку вказано, що він повинен бути останнім у рядку.
За останніми роздільником в операторі s /// можуть слідувати один або кілька модифікаторів. Призначення деяких модифікаторів наведено нижче.
- g - глобальний пошук. Якщо цей модифікатор не вказано, після виявлення першого відповідності оператор s /// закінчить свою роботу. Тому при відсутності модифікатора g буде вироблено не більше однієї заміни.
- i - вказує, що при пошуку слід ігнорувати регістр символів.
- e - вказує, що послідовність символів для заміни слід інтерпретувати не як підрядок, а як вираження Perl.
У вираженні для підстановки можуть бути присутніми змінні $ 1 - $ 9. і в цьому випадку необхідно вказати модифікатор е. Так, наприклад, якщо потрібно інтерпретувати десяткове число як код символу. можна воспользоват'ся наступним виразом:
Щоб пошук або заміна проводилися в рядку, що міститься в потрібній змінної, треба використовувати такий вираз:
Так, наприклад, для перетворення шістнадцяткових чисел, що містяться в змінній $ string. в десяткове подання можна використовувати інструкцію: