Лістинг 5.4. Регулярні вирази.

$s = "hello"; # Вихідний рядок

$s =~ tr/a-z/A-Z/; # Замінити малі букви на великі.

print $s; # Результат 'HELLO'

$s = 'Hel....lo';

$s =~ tr/a-zA-z/_/c; # Замінити не всі букви на '_'

print $s; # Результат 'Hel____lo'

$s =~ tr/_/ /s; # Замінити '_' ' ' і стискувати.

print $s; # Результат 'Hel lo'

$s =~ tr/a-zA-Z /a-zA-Z/d; # Видалити не всі букви.

print $s; # Результат 'Hello'

Якщо один символ кілька разів вказаний в таблице1, то застосовується лише перша заміна.

Оператори введення-виводу.У Perl існує декілька операторів введення-виводу. Перший це дужки з символу '`' - акценту. Рядок в цих дужках сприймається, як системна команда і результат її дії повертається як "псевдо" літерал. У скалярному контексті це рядок, що містить весь результат, а в списковому - список, елементи якого - рядки результату. Статус виконаної команди зберігається в змінній $?.

Наступна команда введення-виведення виглядає як '<файл>'. Обчислення <файл> наводить до читання рядка з файлу. Зверніть увагу, що 'файл' тут не ім'я файлу, а покажчик файлу, який створюється функцією open(). У скалярному контексті читається один рядок разом з символом '\n' - перекладу рядка, а в списковому - весь файл читається в список, елементи якого суть рядка файлу. В разі виявлення кінця файлу результат оператора не визначений і сприймається як false. Якщо не вказана змінна результату, то за замовчуванням це $_. Покажчик файлу за замовчуванням STDIN - стандартне введення:

while(<>) { print; }; # Прочитати і вивести весь файл STDIN

В оператора '<>' є одна відмітна особливість. Якщо в командному рядку немає жодних аргументів, то читається стандартне введення, якщо є аргументи, то вони вважаються іменами файлів, які послідовно читаються.

Якщо в кутових дужках записана змінна, то вміст цієї змінної вважається ім'ям покажчика файлу або посиланням на покажчик файлу. Якщо такого покажчика не існує, то вміст змінної сприймається як шаблон імен файлів і результат - імена файлів на диску, відповідних за шаблоном:

while(<*.pl>) { print;}; # Те ж що і ls *.pl

@files = <*>; # Масив @files містить імена файлів в директорії

але краще зробити: @files = glob("*"); оскільки усередині дужок можна використовувати змінні.

Злиття констант.Як і З Perl виконує можливі обчислення в період компіляції. Так підстановка символів після '\', операція конкатенації рядків, арифметичні вирази, що містять лише одні константи, все це робиться у момент компіляції, що істотно збільшує швидкість виконання програми.

Цілочисельна арифметика.За замовчуванням Perl виконує арифметику з плаваючою комою, але якщо ви вкажете:

use integer;

то компілятор використовуватиме цілочисельну арифметику до кінця поточного блоку, хоча вкладений блок може це і відмінити в своїх межах з допомогою:

no integer;

Вбудовані функції.

Вбудовані функції використовуються як терми виразів і підрозділяються на дві категорії: спискові оператори і унарні оператори. Це впливає на їх пріоритет по відношенню до оператора '', - кома. Спискові оператори можуть мати безліч (список) аргументів, а унарні лише один. Таким чином, кома завершує аргументи унарного оператора і розділяє аргументи спискового. Аргумент унарного оператора сприймається зазвичай в скалярному контексті, а спискового - як в скалярному, так і списковому, причому скалярні аргументи йдуть першими. Аргументи функцій можна брати в круглих дужок і таким чином означати, що "це функція" і пріоритет не має значення, інакше це списковий або унарний оператор з певним фіксованим пріоритетом. Пропуск після імені функції і дужкою значення не має:

print 1 + 2 + 3; # результат 6

print(1+2)+3; # результат 3

print (1+2)+3; # знову 3

print (1+2+3); # 6

Якщо функція повертає результат, як в скалярному, так і в списковому контексті, то код виходу помилково - скаляр з невизначеним значенням або порожній список.








Дата добавления: 2016-04-02; просмотров: 576;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.