вивчаємо perl
Ще одна особливість рядків в подвійних лапках полягає в тому, що в них проводиться інтерполяція змінних, тобто при використанні рядка всі скалярні змінні і змінні-масиви в ній за
Оператор позначає проведення певної операції, завдяки якій створюється нове значення (результат) з одного або декількох інших значень (операндів). наприклад
Взагалі кажучи, операції і вирази Perl є надмножество операцій і виразів, наявних в більшості інших АЛГОЛ-і Паскаль-подібних мов программіровані
Операції над числами
У Perl застосовуються звичайні операції додавання, віднімання, множення, ділення і т.д. наприклад:
2 + 3 # 2 плюс 3, або 5 5.1-2.4 # 5,1 мінус А (побітовое АБО, побітовое виключає АБО)
* Ви добре пам'ятаєте алгебру? Якщо немає, то в повсюдному використанні круглих дужок нічого поганого немає.
У цій таблиці кожна операція має більш високий пріоритет, ніж перераховані за неї, і нижчий пріоритет, ніж перераховані перед нею.
Операції одного рівня пріоритетів вирішуються відповідно до правил асоціативності. Як і пріоритет, асоціативність визначає порядок виконання операцій, якщо дві операції з однаковим пріоритетом намагаються маніпуліроват
2 ** з ** 4 # 2 ** (3 ** 4). або 2 ** 81, або окол
У першому випадку операція ** має асоціативність справа, тому круглі дужки маються на увазі справа. операції
Перетворення чисел в рядки і назад
Якщо строкове значення використовується як операнд в операції з числами (наприклад, в операції додавання), Perl автоматично
Якщо ж, навпаки, там, де має бути строкове значення, вводиться числове (наприклад, в операції конкатенації рядків), це числове значення конвертується в рядок, яка була б виведена на екран замість нього. Наприклад, якщо ви хот
"X". (4 * 5) f те ж саме, що "X". 20, або "Х20"
(Пам'ятаєте, що круглі дужки змушують спочатку виконати 4 * 5, а потім виконувати операцію конкатенації.)
Іншими словами, вам не потрібно (в більшості випадків) турбуватися про те, що вказано в якості операнда - рядок або число, оскільки Perl
* Шістнадцяткові і восьмеричні значення цьому автоматичному перетворенню не підлягають. Для інтерпретації таких значень слід використовувати функції hex
Ім'я змінної - це ім'я контейнера, який містить одне або більше значень. Ім'я змінної залишається постійним на протя
Скалярна змінна містить одне скалярне значення (що представляє собою число, рядок або посилання). Імена скалярних змінних складаються з знака долара і букви, за якою можуть слідувати ще кілька букв, цифр і знаків підкреслює
змінна $ А і змінна $ а - різні. Всі букви, цифри і знаки підкреслення в імені змінної мають значення. Так, змінна
відрізняється від змінної
Імена змінних слід, як правило, підбирати так, щоб вони мали якийсь сенс у зв'язку зі значенням змінної. Наприклад, ім'я $ xyzl23,
Скалярні операції і функції
Найпоширеніша операція, яка виконується над скалярної змінної - присвоювання, яке представляє собою сп
$ А = 17; # Привласнити змінної $ а значення 17
$ B = $ а + 3; # Привласнити $ Ь поточне значення $ а плюс 3 (20)
$ B == $ b * 2; # Привласнити $ b значення $ b, помножене на 2 (40
Зверніть увагу: в останньому рядку змінна $ Ь використовується двічі: один раз для отримання значення (в правій частині), а другий - Можливо, ви помітили, що скалярні змінні завжди передує знаком $. У shell знак
* Їх кількість обмежена числом 255. Сподіваємося, цього достатньо. 2.
У цій таблиці кожна операція має більш високий пріоритет, ніж перераховані за неї, і нижчий пріоритет, ніж перераховані перед нею.
Операції одного рівня пріоритетів вирішуються відповідно до правил асоціативності. Як і пріоритет, асоціативність визначає порядок виконання операцій, якщо дві операції з однаковим пріоритетом намагаються маніпуліроват
2 ** 3 ** 4 # 2 ** (3 ** 4). або 2 ** 81, або близько 2.41е24 72/12/3 # (72/12)
У першому випадку операція ** має асоціативність справа, тому круглі дужки маються на увазі справа. операції
Перетворення чисел в рядки і назад
Якщо строкове значення використовується як операнд в операції з числами (наприклад, в операції додавання), Perl автоматично
Якщо ж, навпаки, там, де має бути строкове значення, вводиться числове (наприклад, в операції конкатенації рядків), це числове значення конвертується в рядок, яка була б виведена на екран замість нього. Наприклад, якщо ви хот
"X". (4 * 5) # те ж саме, що "X". 20, або "Х20"
(Пам'ятаєте, що круглі дужки змушують спочатку виконати 4 * 5, а потім виконувати операцію конкатенації.)
Іншими словами, вам не потрібно (в більшості випадків) турбуватися про те, що вказано в якості операнда - рядок або число, оскільки Perl
* Шістнадцяткові і восьмеричні значення цьому автоматичному перетворенню не підлягають. Для інтерпретації таких значень слід використовувати функції hex
Ім'я змінної - це ім'я контейнера, який містить одне або більше значень. Ім'я змінної залишається постійним на протя
Скалярна змінна містить одне скалярне значення (що представляє собою число, рядок або посилання). Імена скалярних змінних складаються з знака долара і букви, за якою можуть слідувати ще кілька букв, цифр і знаків підкреслює
змінна $ А і змінна $ а - різні. Всі букви, цифри і знаки підкреслення в імені змінної мають значення. Так, змінна
відрізняється від змінної
Імена змінних слід, як правило, підбирати так, щоб вони мали якийсь сенс у зв'язку зі значенням змінної. Наприклад, ім'я $ xyzl23,
Скалярні операції і функції
Найпоширеніша операція, яка виконується над скалярної змінної - присвоювання,
У кожному з вищенаведених випадків дана операція викликає зміна існуючого значення змінної певним способом, а не просто заміну цього значення результатом обчислення якогось т
Іншою поширеною операцією присвоювання є операція конкатенації рядків:
$ Str = $ str. ""; # Додати пробіл до $ str $ str. = ""; # Те ж саме, але з операцією присвоювання
Майже всі виконавчі операції, записані таким чином, допустимі. Наприклад, операція піднесення до степеня записується як * * =. Як і проста операція присвоювання, ці операції також можуть бути використані в якості значення, яким є нове значення змінної. наприклад:
$ B = ($ а + = 4); # $ А і $ b тепер рівні 7
Для зміни регістру букв, задіяних в інтерполяції змінних, можна використовувати спеціально призначені для цього рядкові керуючі послідовності *. наприклад:
$ Bigfred = "\ Ufred"; # $ Bigfred має значення "FRED"
$ Fred = "fred"; $ Bigfred = "\ U $ fred"; # теж саме
$ Capfred = "\ u $ fred"; # $ Capfred має значення "Fred"
$ Barney = "\ LBARNEY"; # $ Barney тепер має значення "barney"
$ Capbarney = "\ u \ LBARNEY"; # $ Capbarney тепер має значення "Barney"
$ Bigbarney = "BARNEY"; $ Capbarney = "\ u \ L $ bigbarney"; # теж саме
Як бачите, що змінюють регістр рядкові керуючі послідовності зберігаються до тих пір, поки не зроблять свій вплив, тому, незважаючи на те, що перша буква слова
Термін "інтерполяція змінних" іноді замінюють терміном "інтерполяція подвійних лапок", тому що інтерполяція виконується в рядках, взятих в подвійні лапки. (А також в рядках, взятих в зворотні лапки, які ми розглянути
Якщо ви - типовий хакер, то, ймовірно, давно вже ставите питанням:
а як же ввести в Perl-програму якесь значення? Ось найпростіший спосіб. Кожен раз, коли там, де потрібно скалярний значення, ви використовуєте дескриптор
$ А =
* Ви, можливо, прийдете до висновку, що легше скористатися функціями uc, ucfirst, lc І
Загальноприйняте скорочення цих двох рядків виглядає так:
Присвоєння всередині круглих дужок продовжує ставитися до $ а навіть після того, як цієї змінної вже присвоєно значення. Таким чином, функція chomp
Висновок за допомогою функції print
Отже, ми вводимо значення за допомогою дескриптора
print ( "hello world \ n"); # Виводиться hello world з символом нового рядка print "hello world \ n"; #
1. Напишіть програму, яка обчислює довжину кола з радіусом 12, 5. Довжина кола дорівнює 2а (близько
2. Модифікуйте програму з попередньої вправи так, щоб вона запитувала і приймала значення радіусу кола у користувача.
3. Напишіть програму, яка запитує і зчитує два числа, після чого виводить на екран результат перемноження цих чисел.
4. Напишіть програму, яка зчитує рядок і число і виводить на екран рядок стільки раз, скільки задано числом, причому кожного разу з нового рядка. (Порада: використовуйте про
| назад |