Изучаване на Perl

Четенето от стандартен вход (чрез дескриптора на stdin файл на Perl) не е трудно. Вече направихме това в операцията. Извършвайки тази операция в скаларен контекст, получаваме следния ред за въвеждане * (и ако няма повече редове, тогава стойността е undef):

$ a =; # прочетете следващия ред

Изпълнението в контекст на списък дава всички останали редове като списък, всеки елемент от който е един ред, включително краен нов ред. Припомням си:

Като правило, когато се разработва програма, човек трябва да реши проблема с четенето на всички редове един по един и след това да извършва някои операции върху всеки от тях. Ето един често използван метод за решаване на този проблем:

# обработете $ ред тук)

* Преди символа за нов ред или каквото и да сте присвоили на $/променлива.

Четенето на скаларна стойност от в $ _ и използването на тази стойност като променлива на цикъл (както в предишния пример) е доста често, така че Perl има специален стенограф за това. Ако в израза е посочено само четенето от стандартния оператор за въвеждане за проверка на цикъла (нещо като), тогава Perl автоматично копира низа, който се чете, в променливата $ _.

chomp; # като "chomp ($ _)" # други $ _ операции се извършват тук)

Тъй като променливата $ _ се използва по подразбиране в много операции, по този начин можете значително да намалите количеството текст, който въвеждате.

Вход от диамантена операция

#!/usr/bin/peri while (<>) (print $ _;

и го наричате така:

kitty filel file2 file3

В хода на нейното изпълнение операцията "диамант" не разглежда директно аргументите на командния ред, а работи с масива @argv. Това е специален масив, инициализиран от интерпретатора на Perl според аргументите на командния ред. Всеки аргумент се съхранява в отделен елемент от този масив. Можете да интерпретирате този масив, както искате *. Можете дори да дефинирате този масив във вашата програма и да накарате операцията "диамант" да работи с този нов списък, а не с аргументи от командния ред, например:

В глава 10 ще видим как можете да отваряте и затваряте конкретни файлове в точно определено време. Ние обаче вече използвахме този метод в някои от нашите набързо калдъръмени програми.

Функциите за печат и printf на Perl се използват за изпращане на всякакви данни към стандартен изход. Да видим как работят.

Функция за печат - нормален изход

Вече използвахме функцията за печат, изпращайки текст към стандартен изход. Нека се спрем на този въпрос по-подробно.

Функцията за печат взема списък с редове и ги изпраща един по един към стандартния изход, без да добавя междинни или последващи знаци. Може да не е напълно очевидно, че print е просто функция, която взема списък с аргументи и връща определена стойност като всяка друга функция. С други думи,