|
Perl е многоцелеви език. Макар, че с него е трудно да се пишат приложения с графичен потребителски интерфейс, той често се използва за писане на CGI скриптове. Всеки си има препочитания и аз го използвам (макар и рядко) за обработка на големи текстови файлове. Е, тук няма да става въпрос за такива файлове, а за следното:
Постановка на задачата: Нека имаме текстови файл test.pas с програмен код в случая Pascal. Ще напишем скрипт на Perl, който прочита test.pas и го конвентира в test.html, като запазените думи на езика са удебелени. Основната ни цел ще бъде да се покаже мощта на регулярните изрази в Perl. Не става въпрос за запознаване с тях, а по-скоро за нова среща. Читателите трябва да са запознати с основите на Perl, включително да имат малки познания за регулярните изрази. За съдържание на test.pas, читателят може да използва всеки файл, който съдържа програма на pascal. Например: CODE
И така, да започваме: CODE
Затваряме файловете CODE
Край на скрипта. Какво правим по-горе? Първо ще си осигуряваме основната структура за html файла. Отваряме файлът test.pas за четене и го асоциираме с файловият маниполатор F. Напомням, че това е файлът, който ще конвентираме. CODE
Отваряме файлът test.html всеки път за нов запис и го асоциираме с файловият маниполатор G. В този файл ще бъде резултатът. CODE
Записваме редовете на test.pas в масива lines. Така всеки ред на test.pas се явява елемент на lines. CODE
Сега в test.html си осигуряваме основната структура на html файла. Тук символите "n" ни осигуряват записването на таговете в test.html на нов ред-за постигане на по-голяма прегледност. Между двата реда CODE
и CODE
ще бъде основният код на скрипта. Колкото и странно да изглежда тези редове ще са ни достатъчни:-) Ако стартираме този скрипт като резултат ще получим една празна HTML страница. Остава само да запълним тази страница с нещо полезно (или не толкова:-). Изрично споменавам отново, че кодът, който ще добавяме ще се намира между редовете CODE
и CODE
Това ще означаваме така: CODE
И така, да обходим всички елементи на @lines (в който са записани редовете на test.pas-асоцииран с F) и да ги запишем в test.html-асоцииран с G. CODE
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









