Загальний огляд та порівняльний аналіз мов ОПП. Мова програмування Perl
Контрольная работа, 06 Июня 2014, автор: пользователь скрыл имя
Краткое описание
Perl-високорівнева, динамічна мова програмування загального призначення. Perl було розроблено у 1987 році Ларі Уоллом, лінгвістом і програмістом за освітою, який у той час працював системним адміністратором у NASA.
Ларрі Волл розпочав роботу над Perl у 1987 році, коли працював програмістом у компанії Unisys, 18 грудня того ж року, у списку поштової розсилки comp.sources.misc від повідомив про вихід версії 1.0. Наступні два роки мова дуже стрімко розвивалась, і вже наступного року було випущено версію 2.0, основним нововведенням якої була покращена робота з регулярними виразами. Perl 3 вийшла у 1989 році, у ній було додано підтримку двійкових потоків даних.
Прикрепленные файлы: 1 файл
ЗМІСТ.docx
— 48.07 Кб (Скачать документ)Оператори роботи з бітами:
- & - повертає побітове && , тобто логічне І (об'єднання)
- I - повертає побітове II, тобто логічне АБО (вибір лівого аргумент)
- ^ - повертає побітове виключення АБО (лівий і правий аргумент буде оброблений)
Логічні оператори І (&&) і АБО (II):
&& - якщо лівий аргумент вірна ( true ), то буде перевірений і правий, якщо невірний (false) - правий теж буде вважатися вірним і не буде перевірений
II - якщо лівий аргумент невірний (false) , то буде перевірений правий, якщо вірна ( true ) - правий не буде перевірятися
Оператор діапазону:
Даний оператор позначається двома точками " .. " . Застосування в різних контекстах (списковом і скалярному) приводять до різних результатів його роботи. Так наприклад в списковом контексті він працює від лівого значення списку до правого з кроком - одна одиниця. Приклад:
for $i (8..15)
{print "$i ";
} # отримаємо наступне: 8 9 10 11 12 13 14 15
Оператори присвоювання:
Стандартним оператором присвоювання є "=", який без будь-яких змін присвоює праве значення змінної, що знаходиться ліворуч від нього. Перелічені нижче оператори виконують аналогічні присвоєння, але з урахуванням додаткових дій, в залежності від лівого індексу:
**=
+=, -=, .=
*= , /=, %=, x=
&=, I=, ^=
<<=, >>=
&&=, II=
Оператор "кома" (","):
В скалярному контексті він обробляє ліве вираз і відкидає його значення, потім обробляє праве і повертає його величину. У списковом контексті він грає роль роздільника при перерахуванні елементів і вставляє всі елементи в список.
Оператор "NOT (логічне НЕ):
Має однакове застосування з " ! " ( див. вище ), але з більш низьким пріоритетом.
Оператори: Логічне І, АБО і Виключає АБО:
- and - еквівалент оператора " &&" ( див. вище ), але має нижчий пріоритет і " обмеженість " дії. тобто він не повернеться до лівого аргументу, якщо він "false"
- or - працює за принципом попереднього, але еквівалентний " II"
- xor - виключне АБО, тобто обробляє і лівий і правий аргумент.
4.Основні конструкції мови
Perl підтримує оператори циклів for, while і do з невеликими відмінностями від їх реалізації в мові С. Істотною відмінністю є те, що Perl вимагає використання інструкцій блоками, укладених у фігурні дужки. Крім того, як ви познайомитеся , далі, Perl розширює конструкцію циклу, что6ы забезпечити її деякі нові форми. У наступних прикладах цикли for, while і do працюють аналогічним чином на мовах С і Perl:
for($i = 0; $i< 100;$i++)
{
printf("%d\n", $i) ;
}
while ($i > 0)
{
printf("%d\n", $i);
}
do {
printf("%d\n", $i++);
} while ($i < 0);
Конструкція циклів на мові С відмінна від конструкції на мові Perl ще і в тому, що Perl не містить оператора break, а оператор continue виконує зовсім іншу функцію. На щастя, Perl забезпечує деякі нові, більш гнучкі і більш інтуїтивно зрозумілі конструкції:
last вихід з циклу (як оператор break)
next почати нову ітерацію (як оператор continue)
redo повторити поточну ітерацію
Для розуміння конструкцій циклів на мові Perl, необхідно розібратися з використанням блоку continue. Розглянемо наступний цикл while, який містить блок continue:
$i = 100;
while ($i > 0)
{
print $i;
} continue {$i-}
У сценарії Perl мітки просто означають ім'я, відповідне якогось положення всередині скрипта. Імена міток закінчуються двокрапкою (наприклад, outerloop:). Використовуючи оператор goto, скрипт може здійснювати переходи на мітку. Додатково можуть використовуватися оператори last, next і redo, для переходу до мітки. Наступний код ілюструє використання оператора last для переходу на мітку:
outerloop: while ($i > 0)
{
while ($j > 0)
{
#Тут який-небудь інший процес
if ($needToAboutLoop)
{
last outerloop;
}
}
}
У цьому випадку інструкція містить гілка last для переходу на мітку outerloop і закінчення виконання циклу.
Ще однією конструкцією циклу у мові Perl є цикл до тих пір, поки, який є протилежністю циклу while. Як ви пам'ятаєте, в циклі while інструкції виконуються до тих пір, поки виконується задана умова. В циклі доти, поки, навпаки, інструкції виконуються до тих пір, поки не буде виконана умова. Наприклад, розглянемо цикл while, такий, як показано на наступній сторінці.
while (!(expr))
{
заяву;
}
Використовуючи цикл до тих пір, поки можна створити ідентичний цикл, показаний нижче:
до тих пір, поки (expr)
{
заяву;
}
Аналогічним чином наступна конструкція do while використовує оператор логічного заперечення для того, щоб виконувати цикл, доки заданий булеве вираз не стане істинним:
зробити
{
заяву;
} while (!(expr));
Використовуючи конструкцію робити до тих пір, поки, ви можете сформувати ідентичний цикл без використання логічного заперечення:
зробити
{
заяву;
} до тих пір, поки (expr);
Perl підтримує цикл for абсолютно аналогічно мови:
for (statement1; expression; statement2)
{
statement3;
}
Наприклад, наступний код використовує цикл for для того, щоб вивести значення чисел від 0 до 100:
for ($digit = 0; $digit <=100; $digit++)
{
print $digit, - -;
}
Додатково Perl містить конструкцію циклу foreach, який дозволяє скрипту організовувати ітерації в списках і масивах. Розглянемо приклад:
@list = (-a,-b,-c-);
foreach $arg (@list)
{
print ?List item: $arg\n¦;
}
foreach $i (1..10)
{
print ?iteration $i\n¦
}
У першому випадку цикл foreach здійснював перебір значень в обліковій змінної @list. У другому прикладі в циклі foreach здійснюється перебір чисел у діапазоні від 1 до 10.
Всередині циклу foreach може фігурувати список, що складається з символів, або масив, як було показано в попередньому прикладі. Після виконання однієї ітерації циклом, спеціальна скалярна змінна {$arg в першому випадку і $i у другому випадку) приймає значення із заданого списку елементів. Область видимості цієї скалярної змінної циклу foreach обмежується тілом циклу. Тому скалярна змінна циклу, foreach не буде конфліктувати з ідентичним іменем змінної, визначеної поза циклу. В наступному коді змінна з ім'ям $i використовується усередині і поза циклу foreach:
$i = 1001;
foreach $i (1..9)
{
print ?$i\n¦; # цикл виведе 123456789
}
print ?$i\n¦;
Як можна побачити з цього прикладу, змінна $i, використовувана для організації ітерацій циклу, не конфліктує з змінної $i, визначеної поза циклу.
Особливістю циклу foreach, яку ваші скрипти можуть використовувати, є можливість модифікації елементів масиву. (Будьте обережні при реалізації цієї можливості!) Розглянемо наступний цикл foreach, який додає значення 10 кожному елементу масиву:
@list = 1..5;
foreach $i (@list)
{
$i += 10;
}
$, = - -;
print @list; # виведе 11 12 13 14 15
У мові Perl імена і for foreach розглядаються як синоніми. Тому в скриптах можна використовувати ці імена поперемінно. Perl, у свою чергу, буде визначати тип циклу, грунтуючись на його контексті.
Обліковий літерал - спосіб представлення масивів у програмі. Записується як він кілька значень скаляров через кому, обмежених круглими дужками. Значення цих скаляров і є елементи списку.
(3, 4, 5) # Масив з трьох елементів - 3, 4 і 5
("Микола", 23, 4.5, 4) # Масив з чотирьох елементів - "Микола", 23, 4.5 і 4
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
Режим доступу: http://altcode.ru/perl/
Режим доступу: http://ru.wikipedia.org/wiki/
Perl
Режим доступу: http://linuxland.itam.nsc.ru/
misc/progperl/perl_rus3.htm
Режим доступу: http://www.novice.ws/perl/
perloperator1.htm