Розглянемо базові принципи Perl, популярного мови для написання CGI скриптів - програм, які взаємодіють з веб сервером для створення більшої динамічності веб сторінок.
Для багатьох задач розробники використовують більш сучасні альтернативи, такі як PHP - які включають деякі функції, взяті з Perl - але Perl все одно краще для освоєння базових навичок створення CGI скриптів.
Якщо подивитися, то ви виявите що на кожній Linux системі встановлений Perl, і крім того ви можете завантажити Perl для Windows - з сайту activestate.com.
Perl - мова-інтерпретатор (як PHP), і він не "строго типізований", що означає, що вам не обов'язково оголошувати змінну, перед тим як її використовувати, і вказувати якого вона типу. Ви можете написати щось на зразок цього:
Як ви бачите, кожен вираз закінчується крапкою з комою, рядок полягає в апострофи.
Одна з перших речей, які необхідно запам'ятати, як і в деяких інших мовах, це те, що важливий тип лапок; якщо ви використовуєте одиничні лапки (апострофи), то вираз всередині трактується як рядок тексту; якщо ви використовуєте подвійні лапки, то у виразі можна використовувати спеціальні символи і змінні. Наприклад, напишемо наступний код:
В результаті буде виведений рядок "$ a \ n '"
Якщо використовувати код
то з нового рядка буде виведена повідомлення "hello world"
Завжди перевіряйте правильність рядків усередині подвійних лапок.
Як запустити скрипт? Якщо ви хочете провести простий тест - використовуйте Perl інтерактивно: відкрийте командне вікно та наберіть perl (в Windows, вам можливо доведеться додати шлях до файлу perl.exe).
Тепер набирайте рядки скрипта. В кінці додайте порожній рядок і потім натисніть Ctrl D. Зазвичай потрібно зробити що-небудь більш складне, для цього напишіть свій скрипт в текстовий файл і збережіть його з розширенням .pl. Потім запустіть його, виконавши команду
Програмування, як правило, включає блоки даних або команд, які використовуються всередині циклів, і Perl не є винятком. Фактично він був спроектований для роботи з текстовими файлами, тобто читає інформацію що знаходиться всередині них або зі стандартного вводу (набір на клавіатурі) або зі списку файлів у командному рядку. Ось простий приклад скрипта:
Збережіть файл як test.pl і запустіть його використовуючи наступну команду:
Другий test.pl можна замінити ім'ям будь-якого іншого текстового файлу. Поглянувши на скрипт, можна побачити блоки команд в циклі, укладені у фігурні дужки.
Для завдання умов в цикл while використовуються значки <>. Спеціальна вказівка "<>"Означає що використовується стандартне введення, а спеціальна змінна" $ _ "означає поточний рядок введення. Таким чином, скрипт читає рядок зі стандартного вводу і виводить її. Якщо ви просто наберете perl test.pl, він чекатиме поки ви наберете якусь рядок і потім виведе її, і так буде тривати поки ви не натиснете Ctrl D, що буде означати кінець скрипта.
Вам так само треба використовувати дужки у виразах if - для умов використовуються звичайні дужки, а для блоку команд фігурні. У наступному шматку коду ми використовуємо ще одну часто використовувану в Perl річ - порівняння.
"Порівнює збігаються змінні, а оператор"!
"Перевіряє розбіжність. Добавть в кінець скрипта наступний рядки і запустіть його командою perl test.pl test.pl:
Результатом будуть два рядки коду і перед кожною приблизно таке повідомлення: "Fred is here, line 7."
Тепер нас є простий скрипт, який шукає в файлі слово "Fred", але для чого ми можемо його використовувати?
Наприклад, його легко вбудувати в який-небудь корисний CGI скрипт, скажімо, для пошуку рядка в таблиці даних.
Дуже часто, на простих вебсайтах робота з базами даних вже реалізована. Але якщо у вас вже є дані в форматі Excel або схожому, ви можете зберегти їх форматі CSV (Comma Separate Values - дані розділені комою), або іншому текстовому форматі.
Потім ви завантажуєте їх на ваш веб-сайт, використовуєте простий Perl скрипт для вилучення рядків в залежності від запиту користувача - для цього ми використовуємо наш приклад.
Збережемо файл у форматі CSV, і завантажимо його на сервер в ту ж директорію, в якій буде наш скрипт. Ми створимо скрипт для вилучення рядка, що містить дані людини, якого необхідно знайти. Скрипт в кінці містить повний код.
Спочатку ми посилаємо заголовок, щоб сказати веб браузеру, що передається простий текст; як і в інших заголовках, це необхідно зробити c нового рядка, і потім додати порожній рядок, що показує кінець заголовка і початок вмісту веб сторінки.
Потім команда open читає файл, розташований в тій же директорії, що і скрипт, CSV файл, який ми створили в Excel; в якості ідентифікатора файлу використовується ім'я "CONTACTS". Його ми будемо використовувати в циклі while для читання файлу. Оскільки всі дані розділені коми, ми можемо записати їх в різні змінні.
Перша команда next if потрібна для пропуску наступної ітерації циклу; ми переконуємося, що ні виведемо рядок, що містить заголовок, який Excel додає в CSV файл. Друга команда використовується для кількох речей; тут є порівняння, з яким ми знайомилися раніше, але в кінці використовується маленька буква i, яка змушує Perl ігнорувати блок.
Друга річ, яку ми додали - це асоціативний масив; Це простий масив, що складається з імен кожного елемента.
Ця частина перевіряється на збіг і пропускаються всі рядки, крім співпадаючих, скрипт завершує роботу, видавши всі контакти, які знайде.
Тепер все, що вам потрібно робити - це час від часу оновлювати дані. В майбутньому, ви можете змінити тип даних на text / html і використовувати HTML теги в командах виводу. Або ви можете створювати тимчасові файли і потім використовувати команди Perl для пошуку і заміни, і записати дані в ці тимчасові файли для подальшого використання.
Читання списку контактів з CSV файлу за допомогою Perl