Man:Man1/perl.1

Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.

Перейти до: навігація, пошук


Зміст

Назва

perl - мова практичного здобуття (даних) і звітування (Practical Extraction and Report Language)

Використання

   perl [ -sTuU ] [ -hv ] [ -V[: змінна_конфігурації  ] ]
        [ -cw ] [ -d[: відладчик ] ] [ -D[ число/список " ] ]"
        [ -pna ] [ -F шаблон ] [ -l[ вісімкове ] ] [ -0[ вісімкове ] ]
        [ -I каталог ] [ -m[-] модуль ] [ -M[-]' модуль...' ]
        [ -P ] [ -S ] [ -x[ каталог ] ]
        [ -i[ розширення ] ] [ -e ' команда <nowiki'</nowiki> ] [ -- ] [ файл_програми ]
        [ аргумент ]...

Опис

Якщо ви новачок у Perl, вам слід розпочати зі сторінки perlintro(1), яка являється загальним введенням для початківців і надає певну допомогу щодо навігації решти чисельної документації мови Perl.

Для полегшення пошуку, посібник Perl розділено на декілька розділів.

Загальний огляд

perl(1)
Загальний огляд Perl (цей розділ)
perlintro(1)
Ознайомлення з Perl для початківців
perltoc(1)
Зміст документації Perl


Посібники

perlreftut(1)
Коротке ознайомлення з посиланнями
perldsc(1)
Ознайомлення зі структурами даних мови Perl
perllol(1)
Структури даних Perl: масиви масивів
perlrequick(1)
Швидке ознайомлення з регулярними виразами мови Perl
perlretut(1)
Посібник по регулярних виразах мови Perl
perlboot(1)
Посібник об'єктнозорієнтованого програмування для початківців
perltoot(1)
Посібник об'єктнозорієнтованого програмування, частина 1
perltooc(1)
Посібник об'єктнозорієнтованого програмування, частина 2
perlbot(1)
Об'єктнозорієнтовні хитрощі та приклади
perlstyle(1)
Керування по стилю мови Perl
perlcheat(1)
Perl-шпаргалка
perltrap(1)
Пастки мови Perl
perldebtut(1)
Посібник по зневадженню Perl
perlfaq(1)
ЧАПи по Perl
perlfaq1(1): Загальні питання про Perl
perlfaq2(1): Встановлення та вивчення Perl
perlfaq3(1): Засоби програмування
perlfaq4(1): Оперування даними
perlfaq5(1): Файли та формати
perlfaq6(1): Регулярні вирази
perlfaq7(1): Спірні питання мови Perl
perlfaq8(1): Взаємодія з системою
perlfaq9(1): Взаємодія з мережою

Довідкові посібники

perlsyn(1)
Синстаксис мови Perl
perldata(1)
Структури даних Perl
perlop(1)
Оператори та їхній пріоритет
perlsub(1)
Функції
perlfunc(1)
Вбудовані функції
perlopentut(1)
Посібник функції open()
perlpacktut(1)
Посібник функції pack() і unpack()
perlpod(1)
Власна система документації Perl
perlpodspec(1)
Опис формату pod-документації
perlrun(1)
Виконання Perl та опції
perldiag(1)
Діагностичні повідомлення Perl
perllexwarn(1)
Лексичні попередження та керування ними
perldebug(1)
Зневадження Perl-програм
perlvar(1)
Попередньо-визначені змінні Perl
perlre(1)
Регулярні вирази Perl, повне визначення
perlreref(1)
Регулярні вирази Perl, швидкий довідник
perlref(1)
Посилання, повне визначення
perlform(1)
Формат виводу Perl
perlobj(1)
Об'єкти в Perl
perltie(1)
Об'єкти, приховані за звичайними змінними
perldbmfilter(1)
Фільтри DBM мови Perl
perlipc(1)
Міжпроцесна взаємодія
perlfork(1)
Інформація щодо fork()
perlnumber(1)
Семантика чисел мови Perl
perlthrtut(1)
Посібник по програмних каналах
perlothrtut(1)
Старий посібник по програмних каналах
perlport(1)
Керівний посібник по портабельності
perllocale(1)
Підтримка локалізації
perluniintro(1)
Ознайомлення з Юнікодом
perlunicode(1)
Підтримка Юнікоду мовою Perl
perlebcdic(1)
Використання Perl на EBCDIC-платформах
perlsec(1)
Посібник по безпеці мови Perl
perlmod(1)
Модулі Perl: як вони працюють
perlmodlib(1)
Модулі Perl: як їх писати та використовувати
perlmodstyle(1)
Модулі Perl: стиль написання модулів
perlmodinstall(1)
Модулі Perl: як встановлювати модулі зі CPAN
perlnewmod(1)
Модулі Perl: приготування нового модуля до розповсюдження
perlutil(1)
Знаряддя, що входять у комплект дистрибутиву Perl
perlcompile(1)
Ознайомлення з набором програм компіляції Perl
perlfilter(1)
Фільтр вихідного коду Perl

Внутрішня побудова та інтерфейс для мови C

perlembed(1)
Спосіб інтегрувати Perl у ваші додатки на C або C++
perldebguts(1)
Внутрішня побудова та підказки по зневадженню Perl-програм
perlxstut(1)
Посібник XS Perl
perlxs(1)
Інтерфейс програмування XS Perl
perlclib(1)
Внутрішні заміни стандартних функцій бібліотеки C
perlguts(1)
Внутрішні функції Perl для тих хто пише розширення
perlcall(1)
Умовності щодо виклику Perl із C
perlapi(1)
Перелік API (інтерфейсу програмування додатків) Perl (автоматично генерований)
perlintern(1)
Внутрішні функції Perl (автоматично генерована сторінка)
perliol(1)
API (інтерфейс програмування додатків) C для Perl-втілення багаторівневого вводу/виводу
perlapio(1)
Внутрішній абстрактний інтерфейс вводу/виводу Perl
perlhack(1)
Інструкція для гекерів Perl

Різне

perlbook(1)
Інформація про книжки про Perl
perltodo(1)
Що необхідно доробити
perldoc(1)
Перегляд Perl-документації у форматі Pod
perlhist(1)
Історія розвитку мови Perl
perldelta(1)
Зміни щодо попередніх версій Perl
perl586delta(1)
Зміни Perl, введені версією 5.8.6
perl585delta(1)
Зміни Perl, введені версією 5.8.5
perl584delta(1)
Зміни Perl, введені версією 5.8.4
perl583delta(1)
Зміни Perl, введені версією 5.8.3
perl582delta(1)
Зміни Perl, введені версією 5.8.2
perl581delta(1)
Зміни Perl, введені версією 5.8.1
perl58delta(1)
Зміни Perl, введені версією 5.8.0
perl573delta(1)
Зміни Perl, введені версією 5.7.3
perl572delta(1)
Зміни Perl, введені версією 5.7.2
perl571delta(1)
Зміни Perl, введені версією 5.7.1
perl570delta(1)
Зміни Perl, введені версією 5.7.0
perl561delta(1)
Зміни Perl, введені версією 5.6.1
perl56delta(1)
Зміни Perl, введені версією 5.6
perl5005delta(1)
Зміни Perl, введені версією 5.005
perl5004delta(1)
Зміни Perl, введені версією 5.004
perlartistic(1)
Артистична ліцензія Perl
perlgpl(1)
Ліцензія GPL

Особливості певних мов

perlcn(1)
Perl для спрощеної китайської (EUC-CN)
perljp(1)
Perl для японської мови (EUC-JP)
perlko(1)
Perl для корейської мови (EUC-KR)
perltw(1)
Perl для традиційної китайської мови (Big5)

Особливості певних платформ

perlaix(1)
Замітки щодо AIX
perlamiga(1)
Замітки щодо AmigaOS
perlapollo(1)
Замітки щодо Apollo DomainOS
perlbeos(1)
Замітки щодо BeOS
perlbs2000(1)
Замітки щодо POSIX-BC BS2000
perlce(1)
Замітки щодо WinCE
perlcygwin(1)
Замітки щодо Cygwin
perldgux(1)
Замітки щодо DG/UX
perldos(1)
Замітки щодо DOS
perlepoc(1)
Замітки щодо EPOC
perlfreebsd(1)
Замітки щодо FreeBSD
perlhpux(1)
Замітки щодо HP-UX
perlhurd(1)
Замітки щодо Hurd
perlirix(1)
Замітки щодо Irix
perlmachten(1)
Замітки щодо Power MachTen
perlmacos(1)
Замітки щодо Mac OS (Classic)
perlmacosx(1)
Замітки щодо Mac OS X
perlmint(1)
Замітки щодо MiNT
perlmpeix(1)
Замітки щодо MPE/iX
perlnetware(1)
Замітки щодо NetWare
perlopenbsd(1)
Замітки щодо OpenBSD
perlos2(1)
Замітки щодо OS/2
perlos390(1)
Замітки щодо OS/390
perlos400(1)
Замітки щодо OS/400
perlplan9(1)
Замітки щодо Plan 9
perlqnx(1)
Замітки щодо QNX
perlsolaris(1)
Замітки щодо Solaris
perltru64(1)
Замітки щодо Tru64
perluts(1)
Замітки щодо UTS
perlvmesa(1)
Замітки щодо VM/ESA
perlvms(1)
Замітки щодо VMS
perlvos(1)
Замітки щодо Stratus VOS
perlwin32(1)
Замітки щодо Windows


Типово, вищевказані сторінки посібника інстальовано в каталозі /usr/local/man/.

Існує також обширна документація модулів Perl. Стандартна конфігурація perl інсталює додакову документацію до каталогу /usr/local/lib/perl5/man (або деінде в підтеці man бібліотечного каталогу Perl). Певна частина цієї документації розповсюджується стандартно разом із Perl, але ви тако знайдете там документацію сторонніх постачальників модулів.

Ви повинні мати змогу переглядати вашу Perl-документацію за допомогою програми man(1), шляхом включення назв відповідних каталогів до конфігураційних файлів, або змінної середовища MANPATH. Щоб дізнатися, де встановлено сторінки посібника Perl, введіть команду

       perl -V:man.dir


Якщо каталоги мають спільний стовбур, як от /usr/local/man/man1 і /usr/local/man/man3, вам потрібно тільки додати назву стовбура (/usr/local/man) до файлів конфігурації man(1) або змінної MANPATH. Якщо ж стовбур відрізняється, вам доведеться додати обидва стовбури.

У випадку, якщо це з якоїсь причини не працює, ви можете скористатися з наданого скрипту perldoc(1) для перегляду інформації про модулі. В такому разі, вам напевне слід оновити програму man.

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

Опис

Perl оптимізовано для сканування довільних текстових файлів, здобуття звідти інформації, та виводу звітів, згідно з цією інформацією. Це також хороша мова для різноманітних задач керування системою. Ціллю було зробити мову практичною (легкою у використанні, ефекстивною, повною), а не гарною (маленькою, елегантною, мінімалістичною).

Perl поєднує (принаймні, так гадає автор) деякі з найкращих рис C, sed, awk і sh, тож ті хто знайомий з цими мовами не повинен зазнати труднощів із Perl. (Історики мов також можуть віднайти певні ознаки csh, Pascal, або навіть BASIC-PLUS.) Синтаксис виразів близько відповідає сиснтаксису виразів C. На відміну від більшості знаряддь Юнікса, Perl не обмежує розмір ваших даних - якщо достатньо пам'яті, Perl завантажить цілий файл як один ланцюжок. Глибина рекурсії також не має обмежень. Таблиці, використовувані гешами, (іноді їх називають "асоціативними масивами") зростають по мірі необхідності, щоб запобігти погіршенню ефективності. Perl в змозі використовувати витончену техніку порівнювання зі зразками регулярних виразів для швидкого сканування великої кількості даних. Хоч і оптимізований для тексту, Perl може так само обробляти бінарні дані, та надавати dbm-файлам вигляд гешів. Perl-скрипти зі встановленим бітом setuid безпечніші за аналогічні C-програми, завдяки механізму слідкування за потоком даних, що запобігає безглуздим діркам у захисті.

Якщо ви маєте задачу, яка за звичайних обставин використала би sed, awk або sh, але перевищує можливості даних програм або оболонок, і повинна працювати трохи швидше, але у вас немає бажання переписати цю дурненьку річ у C, тоді Perl може виявитися саме для вас. Існують також транслятори, що перетворять скрипти sed або awk у Perl.

Але зачекайте, більше того...

Розпочатий у 1993-у році (дивіться perlhist(1)), Perl 5-ї версії, це фактично повний перепис наново, що передбачає наступні корисні риси: .IP o Модулярність і можливість багаторазового використання завдяки багаточисельним модулям. (Опис можна знайти в perlmod(1), perlmodlib(1) і perlmodinstall(1).) .IP o Інтеграційність та можливість розширень. (Опис можна знайти в perlembed(1), perlxstut(1), perlxs(1), perlcall(1), perlguts(1) і xsubpp(1).) .IP o Можливість стоврення власних "магічних" змінних (включаючи багатократні одночасні втілення DBM). (Описано в perltie(1) та AnyDBM_File(1).) .IP o Функції тепер можна переважити іншими, автоматично завантажити та забезпечити прототипом. (Описано в perlsub(1).) .IP o Довільно-гніздован іструктури даних і анонімні функції. (Опис можна знайти в perlreftut(1), perlref(1), perldsc(1) і perllol(1).) .IP o Об'єкто-зорієнтоване програмування. (Описано в perlobj(1), perlboot(1), perltoot(1), perltooc(1) і perlbot(1).) .IP o Підтримка поверхових (легких) процесів (програмних каналів). (Описано в perlthrtut(1) і threads(1).) .IP o Підтримка Юнікоду, інтернаціоналізації та локалізації. (Описано в perluniintro(1), perllocale(1) і Locale::Maketext(1).) .IP o Лексична зона дії. (Описано в perlsub(1).) .IP o Вдосконалення регулярних виразів. (Описано в perlre(1), з додатковими прикладами в perlop(1).) .IP o Вдосконалений зневаджувач й інтерактивне середовище Perl, із підтримкою вбудованого редактору. (Описано в perldebtut(1), perldebug(1) і perldebguts(1).) .IP o Бібліотека сумісності з POSIX 1003.1. (Описано в POSIX(3).)

Гаразд, досить вихвалятися.

Наявність

Perl доступний для більшості операційних систем, включаючи практично всі Юнікс-подібні платформи. Дивіться "Підтримувані платформи".

Середовище

Дивіться perlrun(1).

Автор

Larry Wall <larry@wall.org> із допомогою когорти іншого люду.

Якщо ви хочете поділитися розповідями про ваші успіхи завдяки Perl, що може допомогти іншим, які обстоюють використання Perl в їйніх додатках, або якщо ви просто хочете виразити свою вдячність Larry й іншим розробникам Perl, пишіть будь ласка за адресою perl-thanks@perl.org.

Файли

"@INC"
місцезнаходження бібліотек Perl

Дивіться також

a2p(1)
- перекладач із awk до perl
s2p(1)
- перекладач із sed до perl
http://www.perl.org/
майданчик Perl
http://www.perl.com/
статті по Perl (Мережа O'Reilly)
http://www.cpan.org/
архів Perl (the Comprehensive Perl Archive)
http://www.pm.org/
майданчик користувачів Perl (the Perl Mongers)

Діагностика

Вказівка "use warnings" (або прапорець -w) спричинять до докладних попереджень у випадку якихось помилок.

Дивіться perldiag(1) для роз'яснення всіх діагностичних повідомлень Perl. Вказівка "use diagnostics" автоматично увімкне довшу форму, звичайно стилих повідомлень.

Помилки компіляції вкажуть вам номер рядка, що спричинив помилку, разом з вказівкою наступної лексеми або типу лексеми, яка була би розглянута. (В скрипті, переданому Perl через опцію -e, ланцюжок, що слідує за -e вважатиметься одним рядком.)

На скрипти зі встановленим бітом setuid накладаються додаткові обмеження, які можуть спричинити до повідомлень на зразок "Insecure dependency" (небезпечна залежність). Дивіться perlsec(1) у такому випадку.

Чи згадували ми, що вам конче слід розглянути використання прапорця -w?

Вади

Прапорець -w необов'язковий.

Perl цілком підвладний визначенню вашою машиною таких операцій як зведення типів, atof(), і виводу чисел з плаваючою точкою за допомогою sprintf().

Якщо стандартні операції вводу/виводу вимагають виклику seek або eof між читанням та записом певного потоку, те саме вимагатиме Perl. (Це не стосується sysread() та syswrite().)

Не зважаючи на те, що вбудовані типи даних не мають певних обмежень розміру (за винятком обсягу самої пам'яті машини), існує все ж таки певні обмеження: назва змінної не може перевищувати 251 знак. Порядкові номети рядків внутрішньо зберігаються як короткі цілі, тож вони не можуть перевищувати 65535 (більші значення, як правило, завертаються на початок відліку).

Ви можете відіслати повідомлення про вади (впевніться тільки, що включили повну конфігураційну інформацію, у тому вигляді, в якому її буде виведено програмою myconfig у вихідному коді perl, або командою "perl -V") на perlbug@perl.org. Якщо вам вдалося компілювати perl, тоді можете скористатися зі скрипту perlbug з каталогу utils/, який допоможе у відсиланні повідомлення.

Perl, насправді означає Pathologically Eclectic Rubbish Lister, але не кажіть нікому, що я це сказав.

Примітки

Девізом Perl є "There's more than one way to do it" (Існує більш ніж один спосіб щось зробити). Поділ на скільки ще способів існує, ми залишимо як впаву читачеві.

Три основних чесноти програміста, це Лінь, Нетерплячість і Пиха. Дивіться \&"Верблюжу книжку" ("Programming Perl", третє видання, автор Larry Wall), щоб дізнатися, чому саме.

Переклав українською Віталій Цибуляк.

Особисті інструменти